(0) Obligation:

JBC Problem based on JBC Program:
No human-readable program information known.

Manifest-Version: 1.0 Created-By: 1.6.0_16 (Sun Microsystems Inc.) Main-Class: ListContentTail

(1) JBC2FIG (SOUND transformation)

Constructed FIGraph.

(2) Obligation:

FIGraph based on JBC Program:
Graph of 425 nodes with 3 SCCs.

(3) FIGtoITRSProof (SOUND transformation)

Transformed FIGraph to ITRS rules

(4) Complex Obligation (AND)

(5) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, o1856, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, NULL)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(IntList(x3, x4)), x6, java.lang.Object(IntList(x3, x4)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, NULL)

(6) GroundTermsRemoverProof (EQUIVALENT transformation)

Some arguments are removed because they always contain the same ground term.
We removed the following ground terms:
  • NULL

We removed arguments according to the following replacements:

Cond_Load36072(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load36072(x1, x2, x3, x4, x5, x6, x7)

(7) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, o1856, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1238) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3280, i1314)), i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, java.lang.Object(IntList(o3239, i1291)), i477, java.lang.Object(IntList(o3239, i1291)), i1291)
The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(IntList(x3, x4)), x6, java.lang.Object(IntList(x3, x4)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x3, NULL)

(8) DuplicateArgsRemoverProof (EQUIVALENT transformation)

Some arguments are removed because they only appear as duplicates.
We removed arguments according to the following replacements:

Load3607(x1, x2, x3, x4, x5, x6, x7) → Load3607(x1, x2, x4, x5, x6, x7)
Return3818(x1, x2, x3, x4, x5, x6) → Return3818(x1, x2, x4, x5, x6)
Load3637(x1, x2, x3, x4, x5, x6) → Load3637(x1, x2, x4, x5, x6)
JMP3960(x1, x2, x3, x4, x5, x6, x7) → JMP3960(x1, x2, x4, x5, x6, x7)
Cond_Load36073(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load36073(x1, x2, x3, x5, x7, x8)
Cond_Load36072(x1, x2, x3, x4, x5, x6, x7) → Cond_Load36072(x1, x2, x3, x5, x6, x7)
Cond_Load36071(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load36071(x1, x2, x3, x5, x6, x7, x8)
Cond_Load3607(x1, x2, x3, x4, x5, x6, x7, x8) → Cond_Load3607(x1, x2, x3, x5, x6, x7, x8)

(9) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(10) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(11) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
Load2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Load2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Cond_Load2305ARR1(i118 > 0 && i118 < i3 && i477 > 0 && i118 + 1 > 0, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → Load3607(java.lang.Object(ARRAY(i3, a2436data)), i118 + 1, i477, o1856, i771, o1856)
JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Cond_Load3607(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
Cond_Load3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238 + -1, o3274)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Cond_Load36071(i1238 > 0 && i1238 <= 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → Cond_Load36072(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL)
Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → Load2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → Cond_Load36073(i1238 > 1, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238 + -1, o3280)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → Store3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
Load3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
Load3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → Return3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)

The integer pair graph contains the following rules and edges:
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(9): COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(17): LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(0) -> (1), if ((java.lang.Object(IntList(o1856[0], i480[0])) →* java.lang.Object(IntList(o1856[1], i480[1])))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧(java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])) →* java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(java.lang.Object(ARRAY(i3[0], a2436data[0])) →* java.lang.Object(ARRAY(i3[1], a2436data[1]))))


(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧(java.lang.Object(IntList(o1856[1], i480[1])) →* java.lang.Object(IntList(o1856[2], i480[2])))∧(java.lang.Object(ARRAY(i3[1], a2436data[1])) →* java.lang.Object(ARRAY(i3[2], a2436data[2])))∧(java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])) →* java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))∧(i118[1]* i118[2]))


(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))


(2) -> (6), if ((o1856[2]* o3142[6])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))


(2) -> (8), if ((i771[2]* i1238[8])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))


(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))


(2) -> (14), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))


(2) -> (17), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o1856[2]* o3142[17])∧(i771[2]* 0)∧(o1856[2]* NULL)∧(i477[2]* i477[17])∧(i118[2] + 1* i615[17]))


(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i118[2] + 1* i615[19]))


(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))


(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))


(3) -> (8), if ((o3142[3]* o3142[8])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))


(3) -> (13), if ((i477[3]* i477[13])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))


(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))


(3) -> (17), if ((i477[3]* i477[17])∧(o3142[3]* o3142[17])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o3274[3]* NULL)∧(i615[3]* i615[17])∧(i1284[3]* 0))


(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))


(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧(java.lang.Object(IntList(o3274[4], i1311[4])) →* java.lang.Object(IntList(o3274[5], i1311[5])))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[4], a4210data[4])) →* java.lang.Object(ARRAY(i3[5], a4210data[5]))))


(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[4], a4210data[4]))))


(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[6], a4210data[6]))))


(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))


(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[13], a4210data[13]))))


(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[14], a4210data[14]))))


(5) -> (17), if ((i1238[5] + -1* 0)∧(i477[5]* i477[17])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(i615[5]* i615[17])∧(o3274[5]* NULL)∧(o3142[5]* o3142[17]))


(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))


(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧(java.lang.Object(ARRAY(i3[6], a4210data[6])) →* java.lang.Object(ARRAY(i3[7], a4210data[7])))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(o3142[7]* o3142[12]))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(o3142[7]* o3142[16]))


(7) -> (18), if ((java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))


(8) -> (9), if ((i477[8]* i477[9])∧(o3142[8]* o3142[9])∧(i615[8]* i615[9])∧(java.lang.Object(ARRAY(i3[8], a4210data[8])) →* java.lang.Object(ARRAY(i3[9], a4210data[9])))∧(i1238[8]* i1238[9])∧(i1238[8] > 1* TRUE))


(9) -> (12), if ((i615[9]* i615[12])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(NULL* java.lang.Object(IntList(o3234[12], i1289[12])))∧(o3142[9]* o3142[12])∧(i477[9]* i477[12]))


(9) -> (16), if ((i477[9]* i477[16])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(i615[9]* i615[16])∧(o3142[9]* o3142[16]))


(9) -> (18), if ((NULL* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[9]* i477[18])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[9]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[9]* i615[18]))


(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[10], a4210data[10])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[11], a4210data[11])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧(java.lang.Object(ARRAY(i3[12], a4210data[12])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧(java.lang.Object(ARRAY(i3[13], a4210data[13])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[14], a4210data[14])) →* java.lang.Object(ARRAY(i3[15], a4210data[15])))∧(i615[14]* i615[15])∧(java.lang.Object(IntList(o3280[14], i1314[14])) →* java.lang.Object(IntList(o3280[15], i1314[15]))))


(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧(java.lang.Object(ARRAY(i3[15], a4210data[15])) →* java.lang.Object(ARRAY(i3[3], a4210data[3])))∧(o3280[15]* o3274[3]))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧(java.lang.Object(ARRAY(i3[16], a4210data[16])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i477[16]* i477[10]))


(17) -> (10), if ((o3142[17]* o3142[10])∧(i477[17]* i477[10])∧(java.lang.Object(ARRAY(i3[17], a4210data[17])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i615[17]* i615[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧(java.lang.Object(ARRAY(i3[18], a4210data[18])) →* java.lang.Object(ARRAY(i3[11], a4210data[11]))))


(19) -> (11), if ((java.lang.Object(ARRAY(i3[19], a4210data[19])) →* java.lang.Object(ARRAY(i3[11], a4210data[11])))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(12) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(13) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(9): COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(17): LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(0) -> (1), if ((java.lang.Object(IntList(o1856[0], i480[0])) →* java.lang.Object(IntList(o1856[1], i480[1])))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧(java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])) →* java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(java.lang.Object(ARRAY(i3[0], a2436data[0])) →* java.lang.Object(ARRAY(i3[1], a2436data[1]))))


(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧(java.lang.Object(IntList(o1856[1], i480[1])) →* java.lang.Object(IntList(o1856[2], i480[2])))∧(java.lang.Object(ARRAY(i3[1], a2436data[1])) →* java.lang.Object(ARRAY(i3[2], a2436data[2])))∧(java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])) →* java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))∧(i118[1]* i118[2]))


(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))


(2) -> (6), if ((o1856[2]* o3142[6])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))


(2) -> (8), if ((i771[2]* i1238[8])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))


(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))


(2) -> (14), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))


(2) -> (17), if ((java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o1856[2]* o3142[17])∧(i771[2]* 0)∧(o1856[2]* NULL)∧(i477[2]* i477[17])∧(i118[2] + 1* i615[17]))


(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧(java.lang.Object(ARRAY(i3[2], a2436data[2])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i118[2] + 1* i615[19]))


(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[4], a4210data[4])))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))


(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[6], a4210data[6])))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))


(3) -> (8), if ((o3142[3]* o3142[8])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))


(3) -> (13), if ((i477[3]* i477[13])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[13], a4210data[13])))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))


(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[14], a4210data[14])))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))


(3) -> (17), if ((i477[3]* i477[17])∧(o3142[3]* o3142[17])∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(o3274[3]* NULL)∧(i615[3]* i615[17])∧(i1284[3]* 0))


(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧(java.lang.Object(ARRAY(i3[3], a4210data[3])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))


(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧(java.lang.Object(IntList(o3274[4], i1311[4])) →* java.lang.Object(IntList(o3274[5], i1311[5])))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[4], a4210data[4])) →* java.lang.Object(ARRAY(i3[5], a4210data[5]))))


(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[4], a4210data[4]))))


(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[6], a4210data[6]))))


(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[8], a4210data[8])))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))


(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[13], a4210data[13]))))


(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[14], a4210data[14]))))


(5) -> (17), if ((i1238[5] + -1* 0)∧(i477[5]* i477[17])∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[17], a4210data[17])))∧(i615[5]* i615[17])∧(o3274[5]* NULL)∧(o3142[5]* o3142[17]))


(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(java.lang.Object(ARRAY(i3[5], a4210data[5])) →* java.lang.Object(ARRAY(i3[19], a4210data[19])))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))


(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧(java.lang.Object(ARRAY(i3[6], a4210data[6])) →* java.lang.Object(ARRAY(i3[7], a4210data[7])))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(o3142[7]* o3142[12]))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧(java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(o3142[7]* o3142[16]))


(7) -> (18), if ((java.lang.Object(ARRAY(i3[7], a4210data[7])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))


(8) -> (9), if ((i477[8]* i477[9])∧(o3142[8]* o3142[9])∧(i615[8]* i615[9])∧(java.lang.Object(ARRAY(i3[8], a4210data[8])) →* java.lang.Object(ARRAY(i3[9], a4210data[9])))∧(i1238[8]* i1238[9])∧(i1238[8] > 1* TRUE))


(9) -> (12), if ((i615[9]* i615[12])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[12], a4210data[12])))∧(NULL* java.lang.Object(IntList(o3234[12], i1289[12])))∧(o3142[9]* o3142[12])∧(i477[9]* i477[12]))


(9) -> (16), if ((i477[9]* i477[16])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[16], a4210data[16])))∧(i615[9]* i615[16])∧(o3142[9]* o3142[16]))


(9) -> (18), if ((NULL* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[9]* i477[18])∧(java.lang.Object(ARRAY(i3[9], a4210data[9])) →* java.lang.Object(ARRAY(i3[18], a4210data[18])))∧(o3142[9]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[9]* i615[18]))


(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[10], a4210data[10])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧(java.lang.Object(ARRAY(i3[11], a4210data[11])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧(java.lang.Object(ARRAY(i3[12], a4210data[12])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧(java.lang.Object(ARRAY(i3[13], a4210data[13])) →* java.lang.Object(ARRAY(i3[0], a2436data[0]))))


(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧(java.lang.Object(ARRAY(i3[14], a4210data[14])) →* java.lang.Object(ARRAY(i3[15], a4210data[15])))∧(i615[14]* i615[15])∧(java.lang.Object(IntList(o3280[14], i1314[14])) →* java.lang.Object(IntList(o3280[15], i1314[15]))))


(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧(java.lang.Object(ARRAY(i3[15], a4210data[15])) →* java.lang.Object(ARRAY(i3[3], a4210data[3])))∧(o3280[15]* o3274[3]))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧(java.lang.Object(ARRAY(i3[16], a4210data[16])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i477[16]* i477[10]))


(17) -> (10), if ((o3142[17]* o3142[10])∧(i477[17]* i477[10])∧(java.lang.Object(ARRAY(i3[17], a4210data[17])) →* java.lang.Object(ARRAY(i3[10], a4210data[10])))∧(0* i1289[10])∧(i615[17]* i615[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧(java.lang.Object(ARRAY(i3[18], a4210data[18])) →* java.lang.Object(ARRAY(i3[11], a4210data[11]))))


(19) -> (11), if ((java.lang.Object(ARRAY(i3[19], a4210data[19])) →* java.lang.Object(ARRAY(i3[11], a4210data[11])))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(14) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

(15) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(9): COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(17): LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(0) -> (1), if (((o1856[0]* o1856[1])∧(i480[0]* i480[1]))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧((i771[0]* i771[1])∧(i770[0]* i770[1])∧(i772[0]* i772[1])∧(a3255[0]* a3255[1]))∧((i3[0]* i3[1])∧(a2436data[0]* a2436data[1])))


(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧((o1856[1]* o1856[2])∧(i480[1]* i480[2]))∧((i3[1]* i3[2])∧(a2436data[1]* a2436data[2]))∧((i771[1]* i771[2])∧(i770[1]* i770[2])∧(i772[1]* i772[2])∧(a3255[1]* a3255[2]))∧(i118[1]* i118[2]))


(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧((i3[2]* i3[4])∧(a2436data[2]* a4210data[4]))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))


(2) -> (6), if ((o1856[2]* o3142[6])∧((i3[2]* i3[6])∧(a2436data[2]* a4210data[6]))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))


(2) -> (8), if ((i771[2]* i1238[8])∧((i3[2]* i3[8])∧(a2436data[2]* a4210data[8]))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))


(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧((i3[2]* i3[13])∧(a2436data[2]* a4210data[13]))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))


(2) -> (14), if (((i3[2]* i3[14])∧(a2436data[2]* a4210data[14]))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))


(2) -> (17), if (((i3[2]* i3[17])∧(a2436data[2]* a4210data[17]))∧(o1856[2]* o3142[17])∧(i771[2]* 0)∧(o1856[2]* NULL)∧(i477[2]* i477[17])∧(i118[2] + 1* i615[17]))


(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧((i3[2]* i3[19])∧(a2436data[2]* a4210data[19]))∧(i118[2] + 1* i615[19]))


(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))


(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧((i3[3]* i3[6])∧(a4210data[3]* a4210data[6]))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))


(3) -> (8), if ((o3142[3]* o3142[8])∧((i3[3]* i3[8])∧(a4210data[3]* a4210data[8]))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))


(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))


(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))


(3) -> (17), if ((i477[3]* i477[17])∧(o3142[3]* o3142[17])∧((i3[3]* i3[17])∧(a4210data[3]* a4210data[17]))∧(o3274[3]* NULL)∧(i615[3]* i615[17])∧(i1284[3]* 0))


(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))


(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))


(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))


(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧((i3[5]* i3[6])∧(a4210data[5]* a4210data[6])))


(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧((i3[5]* i3[8])∧(a4210data[5]* a4210data[8]))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))


(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧((i3[5]* i3[13])∧(a4210data[5]* a4210data[13])))


(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))


(5) -> (17), if ((i1238[5] + -1* 0)∧(i477[5]* i477[17])∧((i3[5]* i3[17])∧(a4210data[5]* a4210data[17]))∧(i615[5]* i615[17])∧(o3274[5]* NULL)∧(o3142[5]* o3142[17]))


(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧((i3[5]* i3[19])∧(a4210data[5]* a4210data[19]))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))


(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧((i3[6]* i3[7])∧(a4210data[6]* a4210data[7]))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))


(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))


(8) -> (9), if ((i477[8]* i477[9])∧(o3142[8]* o3142[9])∧(i615[8]* i615[9])∧((i3[8]* i3[9])∧(a4210data[8]* a4210data[9]))∧(i1238[8]* i1238[9])∧(i1238[8] > 1* TRUE))


(9) -> (12), if ((i615[9]* i615[12])∧((i3[9]* i3[12])∧(a4210data[9]* a4210data[12]))∧false∧(o3142[9]* o3142[12])∧(i477[9]* i477[12]))


(9) -> (16), if ((i477[9]* i477[16])∧((i3[9]* i3[16])∧(a4210data[9]* a4210data[16]))∧(i615[9]* i615[16])∧(o3142[9]* o3142[16]))


(9) -> (18), if (false∧(i477[9]* i477[18])∧((i3[9]* i3[18])∧(a4210data[9]* a4210data[18]))∧(o3142[9]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[9]* i615[18]))


(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))


(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))


(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))


(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))


(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))


(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))


(17) -> (10), if ((o3142[17]* o3142[10])∧(i477[17]* i477[10])∧((i3[17]* i3[10])∧(a4210data[17]* a4210data[10]))∧(0* i1289[10])∧(i615[17]* i615[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))


(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(16) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) the following chains were created:
  • We consider the chain STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (1)    (i1289[10]=i477[0]i615[10]=i118[0]o3142[10]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[10]=i3[0]a4210data[10]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (1) using rules (III), (IV) which results in the following new constraint:

    (2)    (LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)



  • We consider the chain RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (7)    (i615[11]=i118[0]i1289[11]=i477[0]o3142[11]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[11]=i3[0]a4210data[11]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (7) using rules (III), (IV) which results in the following new constraint:

    (8)    (LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (11) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (12)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)



  • We consider the chain LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (13)    (o3142[12]=java.lang.Object(IntList(o1856[0], i480[0]))∧i1289[12]=i477[0]i615[12]=i118[0]i3[12]=i3[0]a4210data[12]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (13) using rules (III), (IV) which results in the following new constraint:

    (14)    (LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (17) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (18)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)



  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (19)    (i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (19) using rules (III), (IV) which results in the following new constraint:

    (20)    (LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[(-1)bso_96] ≥ 0)



    We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (24)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)







For Pair LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118, 0), <(i118, i3)), >(i477, 0)), >(+(i118, 1), 0)), java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) the following chains were created:
  • We consider the chain LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))), COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]) which results in the following constraint:

    (25)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUEi477[1]=i477[2]o1856[1]=o1856[2]i480[1]=i480[2]i3[1]=i3[2]a2436data[1]=a2436data[2]i771[1]=i771[2]i770[1]=i770[2]i772[1]=i772[2]a3255[1]=a3255[2]i118[1]=i118[2]LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥))



    We simplified constraint (25) using rule (IV) which results in the following new constraint:

    (26)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUELOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥))



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (27)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[(-1)Bound*bni_97] + [(2)bni_97]o1856[1] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (27) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[(-1)Bound*bni_97] + [(2)bni_97]o1856[1] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[(-1)Bound*bni_97] + [(2)bni_97]o1856[1] ≥ 0∧[(-1)bso_98] ≥ 0)



    We simplified constraint (29) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)







For Pair COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → LOAD3607(java.lang.Object(ARRAY(i3, a2436data)), +(i118, 1), i477, o1856, i771, o1856) the following chains were created:
  • We consider the chain LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))), COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]) which results in the following constraint:

    (31)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUEi477[1]=i477[2]o1856[1]=o1856[2]i480[1]=i480[2]i3[1]=i3[2]a2436data[1]=a2436data[2]i771[1]=i771[2]i770[1]=i770[2]i772[1]=i772[2]a3255[1]=a3255[2]i118[1]=i118[2]COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))≥NonInfC∧COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))≥LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥))



    We simplified constraint (31) using rule (III) which results in the following new constraint:

    (32)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUECOND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥LOAD3607(java.lang.Object(ARRAY(i3[1], a2436data[1])), +(i118[1], 1), i477[1], o1856[1], i771[1], o1856[1])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥))



    We simplified constraint (32) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (33)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]o1856[1] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (33) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (34)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]o1856[1] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (35)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[(-1)Bound*bni_99] + [(2)bni_99]o1856[1] ≥ 0∧[(-1)bso_100] ≥ 0)



    We simplified constraint (35) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (36)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)







For Pair JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) the following chains were created:
  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) which results in the following constraint:

    (37)    (i477[3]=i477[4]o3274[3]=java.lang.Object(IntList(o3274[4], i1311[4]))∧i3[3]=i3[4]a4210data[3]=a4210data[4]i615[3]=i615[4]o3142[3]=o3142[4]i1284[3]=i1238[4]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (37) using rules (III), (IV) which results in the following new constraint:

    (38)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (39)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (39) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (41)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (41) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (42)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) which results in the following constraint:

    (43)    (i615[3]=i615[6]i477[3]=i477[6]i3[3]=i3[6]a4210data[3]=a4210data[6]o3142[3]=o3142[6]o3274[3]=o3141[6]i1284[3]=i1238[6]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (43) using rule (IV) which results in the following new constraint:

    (44)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (44) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (45)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (45) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (46)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (46) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (47)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (47) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (48)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]) which results in the following constraint:

    (49)    (o3142[3]=o3142[8]i3[3]=i3[8]a4210data[3]=a4210data[8]i1284[3]=i1238[8]o3274[3]=NULLi477[3]=i477[8]i615[3]=i615[8]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (49) using rules (III), (IV) which results in the following new constraint:

    (50)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], NULL)≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], NULL)≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], NULL)∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (50) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (51)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (51) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (52)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (52) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (53)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (53) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (54)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]) which results in the following constraint:

    (55)    (i477[3]=i477[13]i3[3]=i3[13]a4210data[3]=a4210data[13]o3274[3]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i1284[3]=0i615[3]=i615[13]o3142[3]=o3142[13]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (55) using rules (III), (IV) which results in the following new constraint:

    (56)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (56) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (57)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (57) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (58)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (58) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (59)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (59) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (60)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) which results in the following constraint:

    (61)    (o3274[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i3[3]=i3[14]a4210data[3]=a4210data[14]i1284[3]=i1238[14]o3142[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i477[3]=i477[14]i615[3]=i615[14]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (61) using rules (III), (IV) which results in the following new constraint:

    (62)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (62) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (63)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (63) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (64)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (64) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (65)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (65) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (66)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0) which results in the following constraint:

    (67)    (i477[3]=i477[17]o3142[3]=o3142[17]i3[3]=i3[17]a4210data[3]=a4210data[17]o3274[3]=NULLi615[3]=i615[17]i1284[3]=0JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (67) using rules (III), (IV) which results in the following new constraint:

    (68)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, NULL)≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, NULL)≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, NULL)∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (68) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (69)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (69) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (70)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (70) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (71)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (71) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (72)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]) which results in the following constraint:

    (73)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19])) ⇒ JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (73) using rules (III), (IV) which results in the following new constraint:

    (74)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (74) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (75)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (75) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (76)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (76) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (77)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_102] ≥ 0)



    We simplified constraint (77) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (78)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → COND_LOAD3607(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) which results in the following constraint:

    (79)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))



    We simplified constraint (79) using rule (IV) which results in the following new constraint:

    (80)    (>(i1238[4], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))



    We simplified constraint (80) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (81)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(-1)Bound*bni_103] + [(2)bni_103]o3274[4] + [bni_103]o3142[4] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (81) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (82)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(-1)Bound*bni_103] + [(2)bni_103]o3274[4] + [bni_103]o3142[4] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (82) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (83)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(-1)Bound*bni_103] + [(2)bni_103]o3274[4] + [bni_103]o3142[4] ≥ 0∧[(-1)bso_104] ≥ 0)



    We simplified constraint (83) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (84)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧[(2)bni_103] ≥ 0∧0 ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)







For Pair COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, +(i1238, -1), o3274) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) which results in the following constraint:

    (85)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (85) using rule (III) which results in the following new constraint:

    (86)    (>(i1238[4], 1)=TRUECOND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], +(i1238[4], -1), o3274[4])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (86) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (87)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(-1)Bound*bni_105] + [(2)bni_105]o3274[4] + [bni_105]o3142[4] ≥ 0∧[(-1)bso_106] + o3274[4] ≥ 0)



    We simplified constraint (87) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (88)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(-1)Bound*bni_105] + [(2)bni_105]o3274[4] + [bni_105]o3142[4] ≥ 0∧[(-1)bso_106] + o3274[4] ≥ 0)



    We simplified constraint (88) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (89)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(-1)Bound*bni_105] + [(2)bni_105]o3274[4] + [bni_105]o3142[4] ≥ 0∧[(-1)bso_106] + o3274[4] ≥ 0)



    We simplified constraint (89) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (90)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧[(2)bni_105] ≥ 0∧0 ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → COND_LOAD36071(&&(>(i1238, 0), <=(i1238, 1)), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]), COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]) which results in the following constraint:

    (91)    (&&(>(i1238[6], 0), <=(i1238[6], 1))=TRUEi1238[6]=i1238[7]i3[6]=i3[7]a4210data[6]=a4210data[7]o3141[6]=o3141[7]i477[6]=i477[7]i615[6]=i615[7]o3142[6]=o3142[7]LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])∧(UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥))



    We simplified constraint (91) using rule (IV) which results in the following new constraint:

    (92)    (&&(>(i1238[6], 0), <=(i1238[6], 1))=TRUELOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])∧(UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥))



    We simplified constraint (92) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (93)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[(-1)Bound*bni_107] + [bni_107]o3141[6] + [bni_107]o3142[6] ≥ 0∧[(-1)bso_108] + o3141[6] ≥ 0)



    We simplified constraint (93) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (94)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[(-1)Bound*bni_107] + [bni_107]o3141[6] + [bni_107]o3142[6] ≥ 0∧[(-1)bso_108] + o3141[6] ≥ 0)



    We simplified constraint (94) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (95)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[(-1)Bound*bni_107] + [bni_107]o3141[6] + [bni_107]o3142[6] ≥ 0∧[(-1)bso_108] + o3141[6] ≥ 0)



    We simplified constraint (95) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (96)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[bni_107] ≥ 0∧0 ≥ 0∧[bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_107] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)







For Pair COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]) which results in the following constraint:

    (97)    (i615[7]=i615[12]o3141[7]=java.lang.Object(IntList(o3234[12], i1289[12]))∧i477[7]=i477[12]i3[7]=i3[12]a4210data[7]=a4210data[12]o3142[7]=o3142[12]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (97) using rules (III), (IV) which results in the following new constraint:

    (98)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], java.lang.Object(IntList(o3234[12], i1289[12])))∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (98) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (99)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (99) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (100)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (100) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (101)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (101) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (102)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0) which results in the following constraint:

    (103)    (o3141[7]=NULLi615[7]=i615[16]i477[7]=i477[16]i3[7]=i3[16]a4210data[7]=a4210data[16]o3142[7]=o3142[16]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (103) using rules (III), (IV) which results in the following new constraint:

    (104)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], NULL)≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], NULL)≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (104) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (105)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (105) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (106)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (106) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (107)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (107) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (108)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)



  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]) which results in the following constraint:

    (109)    (i3[7]=i3[18]a4210data[7]=a4210data[18]o3142[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i477[7]=i477[18]o3141[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i615[7]=i615[18]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (109) using rules (III), (IV) which results in the following new constraint:

    (110)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1238[7], java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1238[7], java.lang.Object(IntList(o3239[18], i1291[18])))≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (110) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (111)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (111) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (112)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (112) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (113)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_110] ≥ 0)



    We simplified constraint (113) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (114)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → COND_LOAD36072(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL) which results in the following constraint:

    (115)    (i477[8]=i477[9]o3142[8]=o3142[9]i615[8]=i615[9]i3[8]=i3[9]a4210data[8]=a4210data[9]i1238[8]=i1238[9]>(i1238[8], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])∧(UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥))



    We simplified constraint (115) using rule (IV) which results in the following new constraint:

    (116)    (>(i1238[8], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL)≥COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])∧(UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥))



    We simplified constraint (116) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (117)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧[bni_111 + (-1)Bound*bni_111] + [bni_111]o3142[8] ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (117) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (118)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧[bni_111 + (-1)Bound*bni_111] + [bni_111]o3142[8] ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (118) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (119)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧[bni_111 + (-1)Bound*bni_111] + [bni_111]o3142[8] ≥ 0∧[(-1)bso_112] ≥ 0)



    We simplified constraint (119) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (120)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧0 ≥ 0∧[bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_111 + (-1)Bound*bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)







For Pair COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]) which results in the following constraint:

    (121)    (COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))



    We simplified constraint (121) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (122)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (122) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (123)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (123) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (124)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (124) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (125)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0) which results in the following constraint:

    (126)    (i477[8]=i477[9]o3142[8]=o3142[9]i615[8]=i615[9]i3[8]=i3[9]a4210data[8]=a4210data[9]i1238[8]=i1238[9]>(i1238[8], 1)=TRUEi477[9]=i477[16]i3[9]=i3[16]a4210data[9]=a4210data[16]i615[9]=i615[16]o3142[9]=o3142[16]COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))



    We simplified constraint (126) using rules (III), (IV) which results in the following new constraint:

    (127)    (>(i1238[8], 1)=TRUECOND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])≥LOAD3637(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))



    We simplified constraint (127) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (128)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (128) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (129)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (129) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (130)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (130) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (131)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)



  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8]), COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]) which results in the following constraint:

    (132)    (COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥NonInfC∧COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9])≥LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥))



    We simplified constraint (132) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (133)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (133) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (134)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (134) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (135)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧[1 + (-1)bso_114] ≥ 0)



    We simplified constraint (135) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (136)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)







For Pair STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
  • We consider the chain STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (137)    (i1289[10]=i477[0]i615[10]=i118[0]o3142[10]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[10]=i3[0]a4210data[10]=a2436data[0]STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10])≥NonInfC∧STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10])≥LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥))



    We simplified constraint (137) using rules (III), (IV) which results in the following new constraint:

    (138)    (STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i477[10], i1289[10])≥NonInfC∧STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i477[10], i1289[10])≥LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥))



    We simplified constraint (138) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (139)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_116] + [2]i1289[10] ≥ 0)



    We simplified constraint (139) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (140)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_116] + [2]i1289[10] ≥ 0)



    We simplified constraint (140) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (141)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_116] + [2]i1289[10] ≥ 0)



    We simplified constraint (141) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (142)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0∧[1] ≥ 0)







For Pair RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
  • We consider the chain RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (143)    (i615[11]=i118[0]i1289[11]=i477[0]o3142[11]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[11]=i3[0]a4210data[11]=a2436data[0]RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11])≥NonInfC∧RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11])≥LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥))



    We simplified constraint (143) using rules (III), (IV) which results in the following new constraint:

    (144)    (RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥NonInfC∧RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥))



    We simplified constraint (144) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (145)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_118] ≥ 0)



    We simplified constraint (145) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (146)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_118] ≥ 0)



    We simplified constraint (146) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (147)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_118] ≥ 0)



    We simplified constraint (147) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (148)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)







For Pair LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (149)    (i615[7]=i615[12]o3141[7]=java.lang.Object(IntList(o3234[12], i1289[12]))∧i477[7]=i477[12]i3[7]=i3[12]a4210data[7]=a4210data[12]o3142[7]=o3142[12]o3142[12]=java.lang.Object(IntList(o1856[0], i480[0]))∧i1289[12]=i477[0]i615[12]=i118[0]i3[12]=i3[0]a4210data[12]=a2436data[0]LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))



    We simplified constraint (149) using rules (III), (IV) which results in the following new constraint:

    (150)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o1856[0], i480[0])), java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o1856[0], i480[0])), java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))



    We simplified constraint (150) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (151)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)



    We simplified constraint (151) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (152)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)



    We simplified constraint (152) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (153)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)



    We simplified constraint (153) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (154)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)



  • We consider the chain COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (155)    (LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))



    We simplified constraint (155) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (156)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)



    We simplified constraint (156) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (157)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)



    We simplified constraint (157) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (158)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_120] ≥ 0)



    We simplified constraint (158) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (159)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289) the following chains were created:
  • We consider the chain COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (160)    (i771[2]=0o1856[2]=o3142[13]i477[2]=i477[13]i3[2]=i3[13]a2436data[2]=a4210data[13]o1856[2]=java.lang.Object(IntList(o3234[13], i1289[13]))∧+(i118[2], 1)=i615[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (160) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (161)    (LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3234[13], i1289[13])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3234[13], i1289[13])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), java.lang.Object(IntList(o3234[13], i1289[13])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (161) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (162)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (162) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (163)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (163) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (164)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (164) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (165)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (166)    (i477[3]=i477[13]i3[3]=i3[13]a4210data[3]=a4210data[13]o3274[3]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i1284[3]=0i615[3]=i615[13]o3142[3]=o3142[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (166) using rules (III), (IV) which results in the following new constraint:

    (167)    (LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (167) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (168)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (168) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (169)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (169) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (170)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (170) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (171)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)



  • We consider the chain COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (172)    (+(i1238[5], -1)=0i615[5]=i615[13]o3142[5]=o3142[13]o3274[5]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i477[5]=i477[13]i3[5]=i3[13]a4210data[5]=a4210data[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (172) using rules (III), (IV) which results in the following new constraint:

    (173)    (+(i1238[5], -1)=0LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (173) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (174)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (174) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (175)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (175) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (176)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[(-1)bso_122] + [2]o3234[13] ≥ 0)



    We simplified constraint (176) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (177)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → COND_LOAD36073(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]) which results in the following constraint:

    (178)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))



    We simplified constraint (178) using rule (IV) which results in the following new constraint:

    (179)    (>(i1238[14], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))



    We simplified constraint (179) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (180)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(-1)Bound*bni_123] + [(4)bni_123]o3280[14] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (180) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (181)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(-1)Bound*bni_123] + [(4)bni_123]o3280[14] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (181) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (182)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(-1)Bound*bni_123] + [(4)bni_123]o3280[14] ≥ 0∧[(-1)bso_124] ≥ 0)



    We simplified constraint (182) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (183)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧0 ≥ 0∧[(4)bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)







For Pair COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), +(i1238, -1), o3280) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]), JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) which results in the following constraint:

    (184)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]+(i1238[15], -1)=i1284[3]i477[15]=i477[3]i615[15]=i615[3]java.lang.Object(IntList(o3280[15], i1314[15]))=o3142[3]i3[15]=i3[3]a4210data[15]=a4210data[3]o3280[15]=o3274[3]COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))



    We simplified constraint (184) using rules (III), (IV) which results in the following new constraint:

    (185)    (>(i1238[14], 1)=TRUECOND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥JMP3960'(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), +(i1238[14], -1), o3280[14])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))



    We simplified constraint (185) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (186)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(-1)Bound*bni_125] + [(4)bni_125]o3280[14] ≥ 0∧[(-1)bso_126] + o3280[14] ≥ 0)



    We simplified constraint (186) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (187)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(-1)Bound*bni_125] + [(4)bni_125]o3280[14] ≥ 0∧[(-1)bso_126] + o3280[14] ≥ 0)



    We simplified constraint (187) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (188)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(-1)Bound*bni_125] + [(4)bni_125]o3280[14] ≥ 0∧[(-1)bso_126] + o3280[14] ≥ 0)



    We simplified constraint (188) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (189)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧0 ≥ 0∧[(4)bni_125] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_125] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)







For Pair LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0), STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) which results in the following constraint:

    (190)    (o3141[7]=NULLi615[7]=i615[16]i477[7]=i477[16]i3[7]=i3[16]a4210data[7]=a4210data[16]o3142[7]=o3142[16]i615[16]=i615[10]o3142[16]=o3142[10]i3[16]=i3[10]a4210data[16]=a4210data[10]0=i1289[10]i477[16]=i477[10]LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))



    We simplified constraint (190) using rules (III), (IV) which results in the following new constraint:

    (191)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], o3142[7], i477[7], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))



    We simplified constraint (191) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (192)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)



    We simplified constraint (192) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (193)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)



    We simplified constraint (193) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (194)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)



    We simplified constraint (194) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (195)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)



  • We consider the chain COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0), STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) which results in the following constraint:

    (196)    (i477[9]=i477[16]i3[9]=i3[16]a4210data[9]=a4210data[16]i615[9]=i615[16]o3142[9]=o3142[16]i615[16]=i615[10]o3142[16]=o3142[10]i3[16]=i3[10]a4210data[16]=a4210data[10]0=i1289[10]i477[16]=i477[10]LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))



    We simplified constraint (196) using rules (III), (IV) which results in the following new constraint:

    (197)    (LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], o3142[9], i477[9], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))



    We simplified constraint (197) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (198)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)



    We simplified constraint (198) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (199)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)



    We simplified constraint (199) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (200)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_128] ≥ 0)



    We simplified constraint (200) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (201)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0), STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) which results in the following constraint:

    (202)    (o3142[17]=o3142[10]i477[17]=i477[10]i3[17]=i3[10]a4210data[17]=a4210data[10]0=i1289[10]i615[17]=i615[10]LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥))



    We simplified constraint (202) using rule (IV) which results in the following new constraint:

    (203)    (LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL)≥STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥))



    We simplified constraint (203) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (204)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧[1 + (-1)bso_130] ≥ 0)



    We simplified constraint (204) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (205)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧[1 + (-1)bso_130] ≥ 0)



    We simplified constraint (205) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (206)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧[1 + (-1)bso_130] ≥ 0)



    We simplified constraint (206) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (207)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_130] ≥ 0)







For Pair LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (208)    (i3[7]=i3[18]a4210data[7]=a4210data[18]o3142[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i477[7]=i477[18]o3141[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i615[7]=i615[18]java.lang.Object(IntList(o3239[18], i1291[18]))=o3142[11]i615[18]=i615[11]i477[18]=i477[11]i1291[18]=i1289[11]i3[18]=i3[11]a4210data[18]=a4210data[11]LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))



    We simplified constraint (208) using rules (III), (IV) which results in the following new constraint:

    (209)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))



    We simplified constraint (209) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (210)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)



    We simplified constraint (210) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (211)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)



    We simplified constraint (211) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (212)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)



    We simplified constraint (212) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (213)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)



  • We consider the chain COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (214)    (LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))



    We simplified constraint (214) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (215)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)



    We simplified constraint (215) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (216)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)



    We simplified constraint (216) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (217)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_132] ≥ 0)



    We simplified constraint (217) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (218)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291) the following chains were created:
  • We consider the chain COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (219)    (o1856[2]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[2]=i477[19]i771[2]=0i3[2]=i3[19]a2436data[2]=a4210data[19]+(i118[2], 1)=i615[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (219) using rules (III), (IV) which results in the following new constraint:

    (220)    (LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (220) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (221)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (221) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (222)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (222) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (223)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (223) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (224)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (225)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (225) using rules (III), (IV) which results in the following new constraint:

    (226)    (LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (226) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (227)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (227) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (228)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (228) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (229)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (229) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (230)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)



  • We consider the chain COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (231)    (o3274[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧o3142[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[5]=i3[19]a4210data[5]=a4210data[19]+(i1238[5], -1)=0i615[5]=i615[19]i477[5]=i477[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (231) using rules (III), (IV) which results in the following new constraint:

    (232)    (+(i1238[5], -1)=0LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (232) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (233)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (233) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (234)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (234) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (235)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[(-1)bso_134] + [2]o3239[19] ≥ 0)



    We simplified constraint (235) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (236)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD2305(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477) → LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_96] ≥ 0)

  • LOAD2305ARR1(java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118, 0), <(i118, i3)), >(i477, 0)), >(+(i118, 1), 0)), java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_97] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_98] ≥ 0)

  • COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3, a2436data)), i118, java.lang.Object(IntList(o1856, i480)), i477, java.lang.Object(java.lang.String(i771, i770, i772, a3255))) → LOAD3607(java.lang.Object(ARRAY(i3, a2436data)), +(i118, 1), i477, o1856, i771, o1856)
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_99] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_100] ≥ 0)

  • JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1284, o3274)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_102] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → COND_LOAD3607(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧[(2)bni_103] ≥ 0∧0 ≥ 0∧[bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_103] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_104] ≥ 0)

  • COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, java.lang.Object(IntList(o3274, i1311))) → LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, +(i1238, -1), o3274)
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧[(2)bni_105] ≥ 0∧0 ≥ 0∧[bni_105] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_105] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_106] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → COND_LOAD36071(&&(>(i1238, 0), <=(i1238, 1)), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[bni_107] ≥ 0∧0 ≥ 0∧[bni_107] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_107] ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_108] ≥ 0)

  • COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, o3141) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, o3141)
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_110] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238, NULL) → COND_LOAD36072(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238)
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])), ≥)∧0 ≥ 0∧[bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_111 + (-1)Bound*bni_111] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_112] ≥ 0)

  • COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1238) → LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL)
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_114] ≥ 0)

  • STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_116] ≥ 0∧[1] ≥ 0)

  • RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, i1289) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_118] ≥ 0)

  • LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_120] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, java.lang.Object(IntList(o3234, i1289))) → LOAD2305(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i1289)
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_122] ≥ 0∧[1] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), i1238, java.lang.Object(IntList(o3280, i1314))) → COND_LOAD36073(>(i1238, 1), java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314)))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧0 ≥ 0∧[(4)bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_123] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_124] ≥ 0)

  • COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3, a4210data)), i615, i477, i1238, java.lang.Object(IntList(o3280, i1314))) → JMP3960'(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3280, i1314)), +(i1238, -1), o3280)
    • (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧0 ≥ 0∧[(4)bni_125] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)Bound*bni_125] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_126] ≥ 0)

  • LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
    • ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)
    • ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_128] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, o3142, 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3, a4210data)), i615, o3142, i477, 0)
    • ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_130] ≥ 0)

  • LOAD3637(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
    • ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)
    • ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_132] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), 0, java.lang.Object(IntList(o3239, i1291))) → RETURN3818(java.lang.Object(ARRAY(i3, a4210data)), i615, i477, java.lang.Object(IntList(o3239, i1291)), i1291)
    • ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_134] ≥ 0∧[1] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for all symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD2305(x1, x2, x3, x4)) = x3   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = 0   
POL(IntList(x1, x2)) = [2]x1   
POL(LOAD2305ARR1(x1, x2, x3, x4, x5)) = x3   
POL(java.lang.String(x1, x2, x3, x4)) = 0   
POL(COND_LOAD2305ARR1(x1, x2, x3, x4, x5, x6)) = x4   
POL(&&(x1, x2)) = 0   
POL(>(x1, x2)) = 0   
POL(0) = 0   
POL(<(x1, x2)) = 0   
POL(+(x1, x2)) = 0   
POL(1) = 0   
POL(LOAD3607(x1, x2, x3, x4, x5, x6)) = x6 + x4   
POL(JMP3960'(x1, x2, x3, x4, x5, x6)) = x6 + x4   
POL(COND_LOAD3607(x1, x2, x3, x4, x5, x6, x7)) = x7 + x5   
POL(-1) = 0   
POL(COND_LOAD36071(x1, x2, x3, x4, x5, x6, x7)) = x5   
POL(<=(x1, x2)) = 0   
POL(LOAD3637(x1, x2, x3, x4, x5)) = x4   
POL(NULL) = [1]   
POL(COND_LOAD36072(x1, x2, x3, x4, x5, x6)) = [1] + x5   
POL(STORE3886(x1, x2, x3, x4, x5)) = [2]x5 + x3   
POL(RETURN3818(x1, x2, x3, x4, x5)) = x4   
POL(COND_LOAD36073(x1, x2, x3, x4, x5, x6)) = [2]x6   

The following pairs are in P>:

COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)

The following pairs are in Pbound:

LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])

The following pairs are in P:

LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])
JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(>(i1238[8], 1), java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

At least the following rules have been oriented under context sensitive arithmetic replacement:

&&(TRUE, TRUE)1TRUE1
&&(TRUE, FALSE)1FALSE1
&&(FALSE, TRUE)1FALSE1
&&(FALSE, FALSE)1FALSE1

(17) Complex Obligation (AND)

(18) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(8): LOAD3607(java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8], NULL) → COND_LOAD36072(i1238[8] > 1, java.lang.Object(ARRAY(i3[8], a4210data[8])), i615[8], i477[8], o3142[8], i1238[8])
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))


(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))


(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))


(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))


(0) -> (1), if (((o1856[0]* o1856[1])∧(i480[0]* i480[1]))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧((i771[0]* i771[1])∧(i770[0]* i770[1])∧(i772[0]* i772[1])∧(a3255[0]* a3255[1]))∧((i3[0]* i3[1])∧(a2436data[0]* a2436data[1])))


(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧((o1856[1]* o1856[2])∧(i480[1]* i480[2]))∧((i3[1]* i3[2])∧(a2436data[1]* a2436data[2]))∧((i771[1]* i771[2])∧(i770[1]* i770[2])∧(i772[1]* i772[2])∧(a3255[1]* a3255[2]))∧(i118[1]* i118[2]))


(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))


(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧((i3[2]* i3[4])∧(a2436data[2]* a4210data[4]))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))


(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))


(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))


(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))


(2) -> (6), if ((o1856[2]* o3142[6])∧((i3[2]* i3[6])∧(a2436data[2]* a4210data[6]))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))


(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧((i3[3]* i3[6])∧(a4210data[3]* a4210data[6]))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))


(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧((i3[5]* i3[6])∧(a4210data[5]* a4210data[6])))


(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧((i3[6]* i3[7])∧(a4210data[6]* a4210data[7]))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))


(2) -> (8), if ((i771[2]* i1238[8])∧((i3[2]* i3[8])∧(a2436data[2]* a4210data[8]))∧(i477[2]* i477[8])∧(i118[2] + 1* i615[8])∧(o1856[2]* o3142[8])∧(o1856[2]* NULL))


(3) -> (8), if ((o3142[3]* o3142[8])∧((i3[3]* i3[8])∧(a4210data[3]* a4210data[8]))∧(i1284[3]* i1238[8])∧(o3274[3]* NULL)∧(i477[3]* i477[8])∧(i615[3]* i615[8]))


(5) -> (8), if ((o3142[5]* o3142[8])∧(i615[5]* i615[8])∧((i3[5]* i3[8])∧(a4210data[5]* a4210data[8]))∧(o3274[5]* NULL)∧(i477[5]* i477[8])∧(i1238[5] + -1* i1238[8]))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))


(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))


(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧((i3[2]* i3[13])∧(a2436data[2]* a4210data[13]))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))


(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))


(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧((i3[5]* i3[13])∧(a4210data[5]* a4210data[13])))


(2) -> (14), if (((i3[2]* i3[14])∧(a2436data[2]* a4210data[14]))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))


(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))


(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))


(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))


(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))


(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧((i3[2]* i3[19])∧(a2436data[2]* a4210data[19]))∧(i118[2] + 1* i615[19]))


(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))


(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧((i3[5]* i3[19])∧(a4210data[5]* a4210data[19]))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(19) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 1 less node.

(20) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))


(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))


(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))


(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))


(0) -> (1), if (((o1856[0]* o1856[1])∧(i480[0]* i480[1]))∧(i118[0]* i118[1])∧(i477[0]* i477[1])∧((i771[0]* i771[1])∧(i770[0]* i770[1])∧(i772[0]* i772[1])∧(a3255[0]* a3255[1]))∧((i3[0]* i3[1])∧(a2436data[0]* a2436data[1])))


(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧((o1856[1]* o1856[2])∧(i480[1]* i480[2]))∧((i3[1]* i3[2])∧(a2436data[1]* a2436data[2]))∧((i771[1]* i771[2])∧(i770[1]* i770[2])∧(i772[1]* i772[2])∧(a3255[1]* a3255[2]))∧(i118[1]* i118[2]))


(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))


(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧((i3[2]* i3[4])∧(a2436data[2]* a4210data[4]))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))


(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))


(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))


(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))


(2) -> (6), if ((o1856[2]* o3142[6])∧((i3[2]* i3[6])∧(a2436data[2]* a4210data[6]))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))


(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧((i3[3]* i3[6])∧(a4210data[3]* a4210data[6]))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))


(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧((i3[5]* i3[6])∧(a4210data[5]* a4210data[6])))


(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧((i3[6]* i3[7])∧(a4210data[6]* a4210data[7]))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))


(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))


(2) -> (13), if ((i771[2]* 0)∧(o1856[2]* o3142[13])∧(i477[2]* i477[13])∧((i3[2]* i3[13])∧(a2436data[2]* a4210data[13]))∧(o1856[2]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i118[2] + 1* i615[13]))


(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))


(5) -> (13), if ((i1238[5] + -1* 0)∧(i615[5]* i615[13])∧(o3142[5]* o3142[13])∧(o3274[5]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i477[5]* i477[13])∧((i3[5]* i3[13])∧(a4210data[5]* a4210data[13])))


(2) -> (14), if (((i3[2]* i3[14])∧(a2436data[2]* a4210data[14]))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))


(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))


(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))


(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))


(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))


(2) -> (19), if ((o1856[2]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[2]* i477[19])∧(i771[2]* 0)∧((i3[2]* i3[19])∧(a2436data[2]* a4210data[19]))∧(i118[2] + 1* i615[19]))


(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))


(5) -> (19), if ((o3274[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(o3142[5]* java.lang.Object(IntList(o3239[19], i1291[19])))∧((i3[5]* i3[19])∧(a4210data[5]* a4210data[19]))∧(i1238[5] + -1* 0)∧(i615[5]* i615[19])∧(i477[5]* i477[19]))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(21) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]) the following chains were created:
  • We consider the chain COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (1)    (o1856[2]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[2]=i477[19]i771[2]=0i3[2]=i3[19]a2436data[2]=a4210data[19]+(i118[2], 1)=i615[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (1) using rules (III), (IV) which results in the following new constraint:

    (2)    (LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (5) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (6)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (7)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (7) using rules (III), (IV) which results in the following new constraint:

    (8)    (LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (11) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (12)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)



  • We consider the chain COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (13)    (o3274[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧o3142[5]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i3[5]=i3[19]a4210data[5]=a4210data[19]+(i1238[5], -1)=0i615[5]=i615[19]i477[5]=i477[19]i3[19]=i3[11]a4210data[19]=a4210data[11]java.lang.Object(IntList(o3239[19], i1291[19]))=o3142[11]i1291[19]=i1289[11]i477[19]=i477[11]i615[19]=i615[11]LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (13) using rules (III), (IV) which results in the following new constraint:

    (14)    (+(i1238[5], -1)=0LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥RETURN3818(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧[1 + (-1)bso_89] + [2]i1291[19] + [2]o3239[19] ≥ 0)



    We simplified constraint (17) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)







For Pair JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) the following chains were created:
  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) which results in the following constraint:

    (19)    (i477[3]=i477[4]o3274[3]=java.lang.Object(IntList(o3274[4], i1311[4]))∧i3[3]=i3[4]a4210data[3]=a4210data[4]i615[3]=i615[4]o3142[3]=o3142[4]i1284[3]=i1238[4]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (19) using rules (III), (IV) which results in the following new constraint:

    (20)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (23) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (24)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) which results in the following constraint:

    (25)    (i615[3]=i615[6]i477[3]=i477[6]i3[3]=i3[6]a4210data[3]=a4210data[6]o3142[3]=o3142[6]o3274[3]=o3141[6]i1284[3]=i1238[6]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (25) using rule (IV) which results in the following new constraint:

    (26)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (27)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (27) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (29) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (30)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]) which results in the following constraint:

    (31)    (i477[3]=i477[13]i3[3]=i3[13]a4210data[3]=a4210data[13]o3274[3]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i1284[3]=0i615[3]=i615[13]o3142[3]=o3142[13]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (31) using rules (III), (IV) which results in the following new constraint:

    (32)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], 0, java.lang.Object(IntList(o3234[13], i1289[13])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (32) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (33)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (33) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (34)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (35)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (35) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (36)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) which results in the following constraint:

    (37)    (o3274[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i3[3]=i3[14]a4210data[3]=a4210data[14]i1284[3]=i1238[14]o3142[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i477[3]=i477[14]i615[3]=i615[14]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (37) using rules (III), (IV) which results in the following new constraint:

    (38)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (39)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (39) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (41)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (41) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (42)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19]) which results in the following constraint:

    (43)    (o3274[3]=java.lang.Object(IntList(o3239[19], i1291[19]))∧i477[3]=i477[19]i615[3]=i615[19]i1284[3]=0i3[3]=i3[19]a4210data[3]=a4210data[19]o3142[3]=java.lang.Object(IntList(o3239[19], i1291[19])) ⇒ JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (43) using rules (III), (IV) which results in the following new constraint:

    (44)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (44) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (45)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (45) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (46)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (46) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (47)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_91] ≥ 0)



    We simplified constraint (47) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (48)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)







For Pair COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]), JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) which results in the following constraint:

    (49)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]+(i1238[15], -1)=i1284[3]i477[15]=i477[3]i615[15]=i615[3]java.lang.Object(IntList(o3280[15], i1314[15]))=o3142[3]i3[15]=i3[3]a4210data[15]=a4210data[3]o3280[15]=o3274[3]COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))



    We simplified constraint (49) using rules (III), (IV) which results in the following new constraint:

    (50)    (>(i1238[14], 1)=TRUECOND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥JMP3960'(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), +(i1238[14], -1), o3280[14])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))



    We simplified constraint (50) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (51)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(3)bni_92 + (-1)Bound*bni_92] + [(4)bni_92]i1314[14] + [(4)bni_92]o3280[14] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (51) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (52)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(3)bni_92 + (-1)Bound*bni_92] + [(4)bni_92]i1314[14] + [(4)bni_92]o3280[14] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (52) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (53)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(3)bni_92 + (-1)Bound*bni_92] + [(4)bni_92]i1314[14] + [(4)bni_92]o3280[14] ≥ 0∧[(-1)bso_93] ≥ 0)



    We simplified constraint (53) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (54)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(4)bni_92] ≥ 0∧[(4)bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]) which results in the following constraint:

    (55)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))



    We simplified constraint (55) using rule (IV) which results in the following new constraint:

    (56)    (>(i1238[14], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))



    We simplified constraint (56) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (57)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(3)bni_94 + (-1)Bound*bni_94] + [(4)bni_94]i1314[14] + [(4)bni_94]o3280[14] ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (57) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (58)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(3)bni_94 + (-1)Bound*bni_94] + [(4)bni_94]i1314[14] + [(4)bni_94]o3280[14] ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (58) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (59)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(3)bni_94 + (-1)Bound*bni_94] + [(4)bni_94]i1314[14] + [(4)bni_94]o3280[14] ≥ 0∧[(-1)bso_95] ≥ 0)



    We simplified constraint (59) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (60)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(4)bni_94] ≥ 0∧[(4)bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]) the following chains were created:
  • We consider the chain COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (61)    (i771[2]=0o1856[2]=o3142[13]i477[2]=i477[13]i3[2]=i3[13]a2436data[2]=a4210data[13]o1856[2]=java.lang.Object(IntList(o3234[13], i1289[13]))∧+(i118[2], 1)=i615[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (61) using rules (I), (II), (III), (IV) which results in the following new constraint:

    (62)    (LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3234[13], i1289[13])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], java.lang.Object(IntList(o3234[13], i1289[13])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), java.lang.Object(IntList(o3234[13], i1289[13])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (62) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (63)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[1 + (-1)bso_97] + [2]i1289[13] + [2]o3234[13] ≥ 0)



    We simplified constraint (63) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (64)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[1 + (-1)bso_97] + [2]i1289[13] + [2]o3234[13] ≥ 0)



    We simplified constraint (64) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (65)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[1 + (-1)bso_97] + [2]i1289[13] + [2]o3234[13] ≥ 0)



    We simplified constraint (65) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (66)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_97] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (67)    (i477[3]=i477[13]i3[3]=i3[13]a4210data[3]=a4210data[13]o3274[3]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i1284[3]=0i615[3]=i615[13]o3142[3]=o3142[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (67) using rules (III), (IV) which results in the following new constraint:

    (68)    (LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (68) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (69)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[1 + (-1)bso_97] + [2]i480[0] + [2]o1856[0] ≥ 0)



    We simplified constraint (69) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (70)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[1 + (-1)bso_97] + [2]i480[0] + [2]o1856[0] ≥ 0)



    We simplified constraint (70) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (71)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧[1 + (-1)bso_97] + [2]i480[0] + [2]o1856[0] ≥ 0)



    We simplified constraint (71) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (72)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_97] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)



  • We consider the chain COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (73)    (+(i1238[5], -1)=0i615[5]=i615[13]o3142[5]=o3142[13]o3274[5]=java.lang.Object(IntList(o3234[13], i1289[13]))∧i477[5]=i477[13]i3[5]=i3[13]a4210data[5]=a4210data[13]i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (73) using rules (III), (IV) which results in the following new constraint:

    (74)    (+(i1238[5], -1)=0LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], java.lang.Object(IntList(o1856[0], i480[0])), 0, java.lang.Object(IntList(o3234[13], i1289[13])))≥LOAD2305(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥))



    We simplified constraint (74) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (75)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[1 + (-1)bso_97] + [2]i480[0] + [2]o1856[0] ≥ 0)



    We simplified constraint (75) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (76)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[1 + (-1)bso_97] + [2]i480[0] + [2]o1856[0] ≥ 0)



    We simplified constraint (76) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (77)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧[1 + (-1)bso_97] + [2]i480[0] + [2]o1856[0] ≥ 0)



    We simplified constraint (77) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (78)    (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_97] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)







For Pair RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) the following chains were created:
  • We consider the chain RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (79)    (i615[11]=i118[0]i1289[11]=i477[0]o3142[11]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[11]=i3[0]a4210data[11]=a2436data[0]RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11])≥NonInfC∧RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11])≥LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥))



    We simplified constraint (79) using rules (III), (IV) which results in the following new constraint:

    (80)    (RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥NonInfC∧RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥))



    We simplified constraint (80) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (81)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_99] ≥ 0)



    We simplified constraint (81) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (82)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_99] ≥ 0)



    We simplified constraint (82) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (83)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧[(-1)bso_99] ≥ 0)



    We simplified constraint (83) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (84)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)







For Pair LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]), RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]) which results in the following constraint:

    (85)    (i3[7]=i3[18]a4210data[7]=a4210data[18]o3142[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i477[7]=i477[18]o3141[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i615[7]=i615[18]java.lang.Object(IntList(o3239[18], i1291[18]))=o3142[11]i615[18]=i615[11]i477[18]=i477[11]i1291[18]=i1289[11]i3[18]=i3[11]a4210data[18]=a4210data[11]LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))



    We simplified constraint (85) using rules (III), (IV) which results in the following new constraint:

    (86)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))≥RETURN3818(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])∧(UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥))



    We simplified constraint (86) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (87)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_101] ≥ 0)



    We simplified constraint (87) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (88)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_101] ≥ 0)



    We simplified constraint (88) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (89)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧[(-1)bso_101] ≥ 0)



    We simplified constraint (89) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (90)    ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)







For Pair STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) the following chains were created:
  • We consider the chain STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (91)    (i1289[10]=i477[0]i615[10]=i118[0]o3142[10]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[10]=i3[0]a4210data[10]=a2436data[0]STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10])≥NonInfC∧STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10])≥LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥))



    We simplified constraint (91) using rules (III), (IV) which results in the following new constraint:

    (92)    (STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i477[10], i1289[10])≥NonInfC∧STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i477[10], i1289[10])≥LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥))



    We simplified constraint (92) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (93)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_103] ≥ 0)



    We simplified constraint (93) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (94)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_103] ≥ 0)



    We simplified constraint (94) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (95)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧[(-1)bso_103] ≥ 0)



    We simplified constraint (95) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (96)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)







For Pair LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0), STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]) which results in the following constraint:

    (97)    (o3141[7]=NULLi615[7]=i615[16]i477[7]=i477[16]i3[7]=i3[16]a4210data[7]=a4210data[16]o3142[7]=o3142[16]i615[16]=i615[10]o3142[16]=o3142[10]i3[16]=i3[10]a4210data[16]=a4210data[10]0=i1289[10]i477[16]=i477[10]LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))



    We simplified constraint (97) using rules (III), (IV) which results in the following new constraint:

    (98)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)≥STORE3886(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], o3142[7], i477[7], 0)∧(UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥))



    We simplified constraint (98) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (99)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (99) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (100)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (100) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (101)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧[(-1)bso_105] ≥ 0)



    We simplified constraint (101) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (102)    ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)







For Pair LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) which results in the following constraint:

    (103)    (i615[7]=i615[12]o3141[7]=java.lang.Object(IntList(o3234[12], i1289[12]))∧i477[7]=i477[12]i3[7]=i3[12]a4210data[7]=a4210data[12]o3142[7]=o3142[12]o3142[12]=java.lang.Object(IntList(o1856[0], i480[0]))∧i1289[12]=i477[0]i615[12]=i118[0]i3[12]=i3[0]a4210data[12]=a2436data[0]LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))



    We simplified constraint (103) using rules (III), (IV) which results in the following new constraint:

    (104)    (LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o1856[0], i480[0])), java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o1856[0], i480[0])), java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD2305(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])∧(UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥))



    We simplified constraint (104) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (105)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_107] ≥ 0)



    We simplified constraint (105) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (106)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_107] ≥ 0)



    We simplified constraint (106) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (107)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧[(-1)bso_107] ≥ 0)



    We simplified constraint (107) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (108)    ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)







For Pair COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]) the following chains were created:
  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]) which results in the following constraint:

    (109)    (i615[7]=i615[12]o3141[7]=java.lang.Object(IntList(o3234[12], i1289[12]))∧i477[7]=i477[12]i3[7]=i3[12]a4210data[7]=a4210data[12]o3142[7]=o3142[12]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (109) using rules (III), (IV) which results in the following new constraint:

    (110)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], java.lang.Object(IntList(o3234[12], i1289[12])))≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], java.lang.Object(IntList(o3234[12], i1289[12])))≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], java.lang.Object(IntList(o3234[12], i1289[12])))∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (110) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (111)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (111) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (112)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (112) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (113)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (113) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (114)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0) which results in the following constraint:

    (115)    (o3141[7]=NULLi615[7]=i615[16]i477[7]=i477[16]i3[7]=i3[16]a4210data[7]=a4210data[16]o3142[7]=o3142[16]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (115) using rules (III), (IV) which results in the following new constraint:

    (116)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], NULL)≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], NULL)≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], NULL)∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (116) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (117)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (117) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (118)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (118) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (119)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (119) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (120)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)



  • We consider the chain COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]), LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18]) which results in the following constraint:

    (121)    (i3[7]=i3[18]a4210data[7]=a4210data[18]o3142[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i477[7]=i477[18]o3141[7]=java.lang.Object(IntList(o3239[18], i1291[18]))∧i615[7]=i615[18]COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7])≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (121) using rules (III), (IV) which results in the following new constraint:

    (122)    (COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1238[7], java.lang.Object(IntList(o3239[18], i1291[18])))≥NonInfC∧COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), i1238[7], java.lang.Object(IntList(o3239[18], i1291[18])))≥LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18])))∧(UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥))



    We simplified constraint (122) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (123)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (123) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (124)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (124) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (125)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧[(-1)bso_109] ≥ 0)



    We simplified constraint (125) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (126)    ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]), COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7]) which results in the following constraint:

    (127)    (&&(>(i1238[6], 0), <=(i1238[6], 1))=TRUEi1238[6]=i1238[7]i3[6]=i3[7]a4210data[6]=a4210data[7]o3141[6]=o3141[7]i477[6]=i477[7]i615[6]=i615[7]o3142[6]=o3142[7]LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])∧(UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥))



    We simplified constraint (127) using rule (IV) which results in the following new constraint:

    (128)    (&&(>(i1238[6], 0), <=(i1238[6], 1))=TRUELOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])≥COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])∧(UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥))



    We simplified constraint (128) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (129)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [(2)bni_110]o3142[6] ≥ 0∧[(-1)bso_111] + o3142[6] ≥ 0)



    We simplified constraint (129) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (130)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [(2)bni_110]o3142[6] ≥ 0∧[(-1)bso_111] + o3142[6] ≥ 0)



    We simplified constraint (130) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (131)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧[bni_110 + (-1)Bound*bni_110] + [(2)bni_110]o3142[6] ≥ 0∧[(-1)bso_111] + o3142[6] ≥ 0)



    We simplified constraint (131) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (132)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)







For Pair COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) which results in the following constraint:

    (133)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (133) using rule (III) which results in the following new constraint:

    (134)    (>(i1238[4], 1)=TRUECOND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], +(i1238[4], -1), o3274[4])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (134) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (135)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[bni_112 + (-1)Bound*bni_112] + [(2)bni_112]o3142[4] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (135) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (136)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[bni_112 + (-1)Bound*bni_112] + [(2)bni_112]o3142[4] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (136) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (137)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[bni_112 + (-1)Bound*bni_112] + [(2)bni_112]o3142[4] ≥ 0∧[(-1)bso_113] ≥ 0)



    We simplified constraint (137) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (138)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) which results in the following constraint:

    (139)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))



    We simplified constraint (139) using rule (IV) which results in the following new constraint:

    (140)    (>(i1238[4], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))



    We simplified constraint (140) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (141)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[bni_114 + (-1)Bound*bni_114] + [(2)bni_114]o3142[4] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (141) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (142)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[bni_114 + (-1)Bound*bni_114] + [(2)bni_114]o3142[4] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (142) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (143)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[bni_114 + (-1)Bound*bni_114] + [(2)bni_114]o3142[4] ≥ 0∧[(-1)bso_115] ≥ 0)



    We simplified constraint (143) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (144)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)







For Pair COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]) the following chains were created:
  • We consider the chain LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))), COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]) which results in the following constraint:

    (145)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUEi477[1]=i477[2]o1856[1]=o1856[2]i480[1]=i480[2]i3[1]=i3[2]a2436data[1]=a2436data[2]i771[1]=i771[2]i770[1]=i770[2]i772[1]=i772[2]a3255[1]=a3255[2]i118[1]=i118[2]COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))≥NonInfC∧COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2])))≥LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥))



    We simplified constraint (145) using rule (III) which results in the following new constraint:

    (146)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUECOND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥LOAD3607(java.lang.Object(ARRAY(i3[1], a2436data[1])), +(i118[1], 1), i477[1], o1856[1], i771[1], o1856[1])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥))



    We simplified constraint (146) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (147)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[bni_116 + (-1)Bound*bni_116] + [(2)bni_116]i480[1] + [(2)bni_116]o1856[1] ≥ 0∧[(-1)bso_117] + [2]i480[1] ≥ 0)



    We simplified constraint (147) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (148)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[bni_116 + (-1)Bound*bni_116] + [(2)bni_116]i480[1] + [(2)bni_116]o1856[1] ≥ 0∧[(-1)bso_117] + [2]i480[1] ≥ 0)



    We simplified constraint (148) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (149)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧[bni_116 + (-1)Bound*bni_116] + [(2)bni_116]i480[1] + [(2)bni_116]o1856[1] ≥ 0∧[(-1)bso_117] + [2]i480[1] ≥ 0)



    We simplified constraint (149) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (150)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_116] ≥ 0∧[(2)bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0∧[1] ≥ 0)







For Pair LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) the following chains were created:
  • We consider the chain LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))), COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2]) which results in the following constraint:

    (151)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUEi477[1]=i477[2]o1856[1]=o1856[2]i480[1]=i480[2]i3[1]=i3[2]a2436data[1]=a2436data[2]i771[1]=i771[2]i770[1]=i770[2]i772[1]=i772[2]a3255[1]=a3255[2]i118[1]=i118[2]LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥))



    We simplified constraint (151) using rule (IV) which results in the following new constraint:

    (152)    (&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0))=TRUELOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥NonInfC∧LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))≥COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))∧(UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥))



    We simplified constraint (152) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (153)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[bni_118 + (-1)Bound*bni_118] + [(2)bni_118]i480[1] + [(2)bni_118]o1856[1] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (153) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (154)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[bni_118 + (-1)Bound*bni_118] + [(2)bni_118]i480[1] + [(2)bni_118]o1856[1] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (154) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (155)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧[bni_118 + (-1)Bound*bni_118] + [(2)bni_118]i480[1] + [(2)bni_118]o1856[1] ≥ 0∧[(-1)bso_119] ≥ 0)



    We simplified constraint (155) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (156)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_118] ≥ 0∧[(2)bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)







For Pair LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))) the following chains were created:
  • We consider the chain STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (157)    (i1289[10]=i477[0]i615[10]=i118[0]o3142[10]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[10]=i3[0]a4210data[10]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (157) using rules (III), (IV) which results in the following new constraint:

    (158)    (LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], java.lang.Object(IntList(o1856[0], i480[0])), i1289[10], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (158) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (159)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (159) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (160)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (160) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (161)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (161) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (162)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)



  • We consider the chain RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (163)    (i615[11]=i118[0]i1289[11]=i477[0]o3142[11]=java.lang.Object(IntList(o1856[0], i480[0]))∧i3[11]=i3[0]a4210data[11]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (163) using rules (III), (IV) which results in the following new constraint:

    (164)    (LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], java.lang.Object(IntList(o1856[0], i480[0])), i1289[11], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (164) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (165)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (165) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (166)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (166) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (167)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (167) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (168)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)



  • We consider the chain LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (169)    (o3142[12]=java.lang.Object(IntList(o1856[0], i480[0]))∧i1289[12]=i477[0]i615[12]=i118[0]i3[12]=i3[0]a4210data[12]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (169) using rules (III), (IV) which results in the following new constraint:

    (170)    (LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], java.lang.Object(IntList(o1856[0], i480[0])), i1289[12], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (170) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (171)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (171) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (172)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (172) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (173)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (173) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (174)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)



  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13]), LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0]))), LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) which results in the following constraint:

    (175)    (i1289[13]=i477[0]o3142[13]=java.lang.Object(IntList(o1856[0], i480[0]))∧i615[13]=i118[0]i3[13]=i3[0]a4210data[13]=a2436data[0]o1856[0]=o1856[1]i480[0]=i480[1]i118[0]=i118[1]i477[0]=i477[1]i771[0]=i771[1]i770[0]=i770[1]i772[0]=i772[1]a3255[0]=a3255[1]i3[0]=i3[1]a2436data[0]=a2436data[1]LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (175) using rules (III), (IV) which results in the following new constraint:

    (176)    (LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])≥NonInfC∧LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13])≥LOAD2305ARR1(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], java.lang.Object(IntList(o1856[0], i480[0])), i1289[13], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))∧(UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥))



    We simplified constraint (176) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (177)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (177) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (178)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (178) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (179)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧[1 + (-1)bso_121] ≥ 0)



    We simplified constraint (179) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (180)    ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])
    • ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_89] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

  • JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_91] ≥ 0)

  • COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
    • (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(4)bni_92] ≥ 0∧[(4)bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_92 + (-1)Bound*bni_92] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_93] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(4)bni_94] ≥ 0∧[(4)bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(3)bni_94 + (-1)Bound*bni_94] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_95] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_97] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_97] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_97] ≥ 0∧[1] ≥ 0∧[1] ≥ 0)

  • RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_99] ≥ 0)

  • LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
    • ((UIncreasing(RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_101] ≥ 0)

  • STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_103] ≥ 0)

  • LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
    • ((UIncreasing(STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_105] ≥ 0)

  • LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
    • ((UIncreasing(LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_107] ≥ 0)

  • COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)
    • ((UIncreasing(LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_109] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(2)bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_110 + (-1)Bound*bni_110] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_111] ≥ 0)

  • COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_112 + (-1)Bound*bni_112] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_113] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_114 + (-1)Bound*bni_114] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_115] ≥ 0)

  • COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_116] ≥ 0∧[(2)bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_116 + (-1)Bound*bni_116] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_117] ≥ 0∧[1] ≥ 0)

  • LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(2)bni_118] ≥ 0∧[(2)bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[bni_118 + (-1)Bound*bni_118] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_119] ≥ 0)

  • LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)
    • ((UIncreasing(LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_121] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for all symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD3607(x1, x2, x3, x4, x5, x6)) = [1] + [2]x4   
POL(java.lang.Object(x1)) = [1] + x1   
POL(ARRAY(x1, x2)) = 0   
POL(IntList(x1, x2)) = [2]x2 + [2]x1   
POL(0) = 0   
POL(RETURN3818(x1, x2, x3, x4, x5)) = [1] + x4   
POL(JMP3960'(x1, x2, x3, x4, x5, x6)) = [1] + [2]x4   
POL(COND_LOAD36073(x1, x2, x3, x4, x5, x6)) = [1] + [2]x6   
POL(+(x1, x2)) = 0   
POL(-1) = 0   
POL(>(x1, x2)) = 0   
POL(1) = 0   
POL(LOAD2305(x1, x2, x3, x4)) = [1] + x3   
POL(LOAD3637(x1, x2, x3, x4, x5)) = [1] + x4   
POL(STORE3886(x1, x2, x3, x4, x5)) = [1] + x3   
POL(NULL) = 0   
POL(COND_LOAD36071(x1, x2, x3, x4, x5, x6, x7)) = [1] + x5   
POL(&&(x1, x2)) = 0   
POL(<=(x1, x2)) = 0   
POL(COND_LOAD3607(x1, x2, x3, x4, x5, x6, x7)) = [1] + [2]x5   
POL(COND_LOAD2305ARR1(x1, x2, x3, x4, x5, x6)) = x4   
POL(java.lang.String(x1, x2, x3, x4)) = 0   
POL(LOAD2305ARR1(x1, x2, x3, x4, x5)) = x3   
POL(<(x1, x2)) = 0   

The following pairs are in P>:

LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])
LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))

The following pairs are in Pbound:

COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])
LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))

The following pairs are in P:

JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(&&(>(i1238[6], 0), <=(i1238[6], 1)), java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), +(i118[2], 1), i477[2], o1856[2], i771[2], o1856[2])
LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(&&(&&(&&(>(i118[1], 0), <(i118[1], i3[1])), >(i477[1], 0)), >(+(i118[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))

There are no usable rules.

(22) Complex Obligation (AND)

(23) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer, Boolean


R is empty.

The integer pair graph contains the following rules and edges:
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(6): LOAD3607(java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6]) → COND_LOAD36071(i1238[6] > 0 && i1238[6] <= 1, java.lang.Object(ARRAY(i3[6], a4210data[6])), i615[6], i477[6], o3142[6], i1238[6], o3141[6])
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(2): COND_LOAD2305ARR1(TRUE, java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2], java.lang.Object(IntList(o1856[2], i480[2])), i477[2], java.lang.Object(java.lang.String(i771[2], i770[2], i772[2], a3255[2]))) → LOAD3607(java.lang.Object(ARRAY(i3[2], a2436data[2])), i118[2] + 1, i477[2], o1856[2], i771[2], o1856[2])
(1): LOAD2305ARR1(java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1]))) → COND_LOAD2305ARR1(i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a2436data[1])), i118[1], java.lang.Object(IntList(o1856[1], i480[1])), i477[1], java.lang.Object(java.lang.String(i771[1], i770[1], i772[1], a3255[1])))

(1) -> (2), if ((i118[1] > 0 && i118[1] < i3[1] && i477[1] > 0 && i118[1] + 1 > 0* TRUE)∧(i477[1]* i477[2])∧((o1856[1]* o1856[2])∧(i480[1]* i480[2]))∧((i3[1]* i3[2])∧(a2436data[1]* a2436data[2]))∧((i771[1]* i771[2])∧(i770[1]* i770[2])∧(i772[1]* i772[2])∧(a3255[1]* a3255[2]))∧(i118[1]* i118[2]))


(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))


(2) -> (4), if ((o1856[2]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i118[2] + 1* i615[4])∧(i771[2]* i1238[4])∧((i3[2]* i3[4])∧(a2436data[2]* a4210data[4]))∧(i477[2]* i477[4])∧(o1856[2]* o3142[4]))


(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))


(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))


(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))


(2) -> (6), if ((o1856[2]* o3142[6])∧((i3[2]* i3[6])∧(a2436data[2]* a4210data[6]))∧(o1856[2]* o3141[6])∧(i118[2] + 1* i615[6])∧(i771[2]* i1238[6])∧(i477[2]* i477[6]))


(3) -> (6), if ((i615[3]* i615[6])∧(i477[3]* i477[6])∧((i3[3]* i3[6])∧(a4210data[3]* a4210data[6]))∧(o3142[3]* o3142[6])∧(o3274[3]* o3141[6])∧(i1284[3]* i1238[6]))


(5) -> (6), if ((i615[5]* i615[6])∧(i1238[5] + -1* i1238[6])∧(o3274[5]* o3141[6])∧(o3142[5]* o3142[6])∧(i477[5]* i477[6])∧((i3[5]* i3[6])∧(a4210data[5]* a4210data[6])))


(6) -> (7), if ((i1238[6] > 0 && i1238[6] <= 1* TRUE)∧(i1238[6]* i1238[7])∧((i3[6]* i3[7])∧(a4210data[6]* a4210data[7]))∧(o3141[6]* o3141[7])∧(i477[6]* i477[7])∧(i615[6]* i615[7])∧(o3142[6]* o3142[7]))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))


(2) -> (14), if (((i3[2]* i3[14])∧(a2436data[2]* a4210data[14]))∧(i477[2]* i477[14])∧(o1856[2]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i771[2]* i1238[14])∧(i118[2] + 1* i615[14]))


(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))


(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))


(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))


(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(24) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 1 SCC with 9 less nodes.

(25) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(15): COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), i1238[15] + -1, o3280[15])
(14): LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(i1238[14] > 1, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
(5): COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5] + -1, o3274[5])
(4): LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(i1238[4] > 1, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])

(15) -> (3), if ((i1238[15] + -1* i1284[3])∧(i477[15]* i477[3])∧(i615[15]* i615[3])∧(java.lang.Object(IntList(o3280[15], i1314[15])) →* o3142[3])∧((i3[15]* i3[3])∧(a4210data[15]* a4210data[3]))∧(o3280[15]* o3274[3]))


(3) -> (4), if ((i477[3]* i477[4])∧(o3274[3]* java.lang.Object(IntList(o3274[4], i1311[4])))∧((i3[3]* i3[4])∧(a4210data[3]* a4210data[4]))∧(i615[3]* i615[4])∧(o3142[3]* o3142[4])∧(i1284[3]* i1238[4]))


(5) -> (4), if ((i477[5]* i477[4])∧(o3142[5]* o3142[4])∧(o3274[5]* java.lang.Object(IntList(o3274[4], i1311[4])))∧(i1238[5] + -1* i1238[4])∧(i615[5]* i615[4])∧((i3[5]* i3[4])∧(a4210data[5]* a4210data[4])))


(4) -> (5), if ((i477[4]* i477[5])∧(i1238[4]* i1238[5])∧((o3274[4]* o3274[5])∧(i1311[4]* i1311[5]))∧(o3142[4]* o3142[5])∧(i615[4]* i615[5])∧(i1238[4] > 1* TRUE)∧((i3[4]* i3[5])∧(a4210data[4]* a4210data[5])))


(3) -> (14), if ((o3274[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧((i3[3]* i3[14])∧(a4210data[3]* a4210data[14]))∧(i1284[3]* i1238[14])∧(o3142[3]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i477[3]* i477[14])∧(i615[3]* i615[14]))


(5) -> (14), if ((i615[5]* i615[14])∧(i477[5]* i477[14])∧(o3142[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(o3274[5]* java.lang.Object(IntList(o3280[14], i1314[14])))∧(i1238[5] + -1* i1238[14])∧((i3[5]* i3[14])∧(a4210data[5]* a4210data[14])))


(14) -> (15), if ((i477[14]* i477[15])∧(i1238[14]* i1238[15])∧(i1238[14] > 1* TRUE)∧((i3[14]* i3[15])∧(a4210data[14]* a4210data[15]))∧(i615[14]* i615[15])∧((o3280[14]* o3280[15])∧(i1314[14]* i1314[15])))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(26) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]), JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) which results in the following constraint:

    (1)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]+(i1238[15], -1)=i1284[3]i477[15]=i477[3]i615[15]=i615[3]java.lang.Object(IntList(o3280[15], i1314[15]))=o3142[3]i3[15]=i3[3]a4210data[15]=a4210data[3]o3280[15]=o3274[3]COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15])))≥JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))



    We simplified constraint (1) using rules (III), (IV) which results in the following new constraint:

    (2)    (>(i1238[14], 1)=TRUECOND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥JMP3960'(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), +(i1238[14], -1), o3280[14])∧(UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(11)bni_38 + (-1)Bound*bni_38] + [(4)bni_38]o3280[14] + [bni_38]i1238[14] + [bni_38]i615[14] ≥ 0∧[7 + (-1)bso_39] + i1238[14] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(11)bni_38 + (-1)Bound*bni_38] + [(4)bni_38]o3280[14] + [bni_38]i1238[14] + [bni_38]i615[14] ≥ 0∧[7 + (-1)bso_39] + i1238[14] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧[(11)bni_38 + (-1)Bound*bni_38] + [(4)bni_38]o3280[14] + [bni_38]i1238[14] + [bni_38]i615[14] ≥ 0∧[7 + (-1)bso_39] + i1238[14] ≥ 0)



    We simplified constraint (5) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (6)    (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧0 ≥ 0∧[(4)bni_38] ≥ 0∧[bni_38] ≥ 0∧0 ≥ 0∧[bni_38] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(11)bni_38 + (-1)Bound*bni_38] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[7 + (-1)bso_39] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))), COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15]) which results in the following constraint:

    (7)    (i477[14]=i477[15]i1238[14]=i1238[15]>(i1238[14], 1)=TRUEi3[14]=i3[15]a4210data[14]=a4210data[15]i615[14]=i615[15]o3280[14]=o3280[15]i1314[14]=i1314[15]LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))



    We simplified constraint (7) using rule (IV) which results in the following new constraint:

    (8)    (>(i1238[14], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))≥COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥))



    We simplified constraint (8) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (9)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(12)bni_40 + (-1)Bound*bni_40] + [(6)bni_40]o3280[14] + [(2)bni_40]i1238[14] + [bni_40]i615[14] ≥ 0∧[1 + (-1)bso_41] + [2]o3280[14] + i1238[14] ≥ 0)



    We simplified constraint (9) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (10)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(12)bni_40 + (-1)Bound*bni_40] + [(6)bni_40]o3280[14] + [(2)bni_40]i1238[14] + [bni_40]i615[14] ≥ 0∧[1 + (-1)bso_41] + [2]o3280[14] + i1238[14] ≥ 0)



    We simplified constraint (10) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (11)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧[(12)bni_40 + (-1)Bound*bni_40] + [(6)bni_40]o3280[14] + [(2)bni_40]i1238[14] + [bni_40]i615[14] ≥ 0∧[1 + (-1)bso_41] + [2]o3280[14] + i1238[14] ≥ 0)



    We simplified constraint (11) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (12)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧0 ≥ 0∧[(6)bni_40] ≥ 0∧[(2)bni_40] ≥ 0∧0 ≥ 0∧[bni_40] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(12)bni_40 + (-1)Bound*bni_40] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_41] ≥ 0∧[1] ≥ 0)







For Pair COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) which results in the following constraint:

    (13)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]i477[5]=i477[4]1o3142[5]=o3142[4]1o3274[5]=java.lang.Object(IntList(o3274[4]1, i1311[4]1))∧+(i1238[5], -1)=i1238[4]1i615[5]=i615[4]1i3[5]=i3[4]1a4210data[5]=a4210data[4]1COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (13) using rules (III), (IV) which results in the following new constraint:

    (14)    (>(i1238[4], 1)=TRUECOND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(java.lang.Object(IntList(o3274[4]1, i1311[4]1)), i1311[4])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(java.lang.Object(IntList(o3274[4]1, i1311[4]1)), i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], +(i1238[4], -1), java.lang.Object(IntList(o3274[4]1, i1311[4]1)))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (14) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (15)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(15)bni_42 + (-1)Bound*bni_42] + [(4)bni_42]o3274[4]1 + [(2)bni_42]i1238[4] + [bni_42]o3142[4] + [bni_42]i615[4] ≥ 0∧[7 + (-1)bso_43] + [2]i1238[4] ≥ 0)



    We simplified constraint (15) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (16)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(15)bni_42 + (-1)Bound*bni_42] + [(4)bni_42]o3274[4]1 + [(2)bni_42]i1238[4] + [bni_42]o3142[4] + [bni_42]i615[4] ≥ 0∧[7 + (-1)bso_43] + [2]i1238[4] ≥ 0)



    We simplified constraint (16) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (17)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(15)bni_42 + (-1)Bound*bni_42] + [(4)bni_42]o3274[4]1 + [(2)bni_42]i1238[4] + [bni_42]o3142[4] + [bni_42]i615[4] ≥ 0∧[7 + (-1)bso_43] + [2]i1238[4] ≥ 0)



    We simplified constraint (17) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (18)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_42] ≥ 0∧[(2)bni_42] ≥ 0∧[bni_42] ≥ 0∧0 ≥ 0∧[bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(15)bni_42 + (-1)Bound*bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[7 + (-1)bso_43] ≥ 0∧[1] ≥ 0)



  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]), LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) which results in the following constraint:

    (19)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]i615[5]=i615[14]i477[5]=i477[14]o3142[5]=java.lang.Object(IntList(o3280[14], i1314[14]))∧o3274[5]=java.lang.Object(IntList(o3280[14], i1314[14]))∧+(i1238[5], -1)=i1238[14]i3[5]=i3[14]a4210data[5]=a4210data[14]COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5])))≥LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (19) using rules (III), (IV) which results in the following new constraint:

    (20)    (>(i1238[4], 1)=TRUECOND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[4], java.lang.Object(IntList(java.lang.Object(IntList(o3280[14], i1314[14])), i1311[4])))≥NonInfC∧COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[4], java.lang.Object(IntList(java.lang.Object(IntList(o3280[14], i1314[14])), i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], java.lang.Object(IntList(o3280[14], i1314[14])), +(i1238[4], -1), java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥))



    We simplified constraint (20) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (21)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(19)bni_42 + (-1)Bound*bni_42] + [(6)bni_42]o3280[14] + [(2)bni_42]i1238[4] + [bni_42]i615[4] ≥ 0∧[7 + (-1)bso_43] + [2]i1238[4] ≥ 0)



    We simplified constraint (21) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (22)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(19)bni_42 + (-1)Bound*bni_42] + [(6)bni_42]o3280[14] + [(2)bni_42]i1238[4] + [bni_42]i615[4] ≥ 0∧[7 + (-1)bso_43] + [2]i1238[4] ≥ 0)



    We simplified constraint (22) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (23)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧[(19)bni_42 + (-1)Bound*bni_42] + [(6)bni_42]o3280[14] + [(2)bni_42]i1238[4] + [bni_42]i615[4] ≥ 0∧[7 + (-1)bso_43] + [2]i1238[4] ≥ 0)



    We simplified constraint (23) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (24)    (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(6)bni_42] ≥ 0∧[(2)bni_42] ≥ 0∧0 ≥ 0∧[bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(19)bni_42 + (-1)Bound*bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[7 + (-1)bso_43] ≥ 0∧[1] ≥ 0)







For Pair LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) the following chains were created:
  • We consider the chain LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))), COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5]) which results in the following constraint:

    (25)    (i477[4]=i477[5]i1238[4]=i1238[5]o3274[4]=o3274[5]i1311[4]=i1311[5]o3142[4]=o3142[5]i615[4]=i615[5]>(i1238[4], 1)=TRUEi3[4]=i3[5]a4210data[4]=a4210data[5]LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))



    We simplified constraint (25) using rule (IV) which results in the following new constraint:

    (26)    (>(i1238[4], 1)=TRUELOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))≥COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥))



    We simplified constraint (26) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (27)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(8)bni_44 + (-1)Bound*bni_44] + [(4)bni_44]o3274[4] + [(2)bni_44]i1238[4] + [bni_44]o3142[4] + [bni_44]i615[4] ≥ 0∧[1 + (-1)bso_45] + [2]o3274[4] ≥ 0)



    We simplified constraint (27) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (28)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(8)bni_44 + (-1)Bound*bni_44] + [(4)bni_44]o3274[4] + [(2)bni_44]i1238[4] + [bni_44]o3142[4] + [bni_44]i615[4] ≥ 0∧[1 + (-1)bso_45] + [2]o3274[4] ≥ 0)



    We simplified constraint (28) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (29)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧[(8)bni_44 + (-1)Bound*bni_44] + [(4)bni_44]o3274[4] + [(2)bni_44]i1238[4] + [bni_44]o3142[4] + [bni_44]i615[4] ≥ 0∧[1 + (-1)bso_45] + [2]o3274[4] ≥ 0)



    We simplified constraint (29) using rules (IDP_UNRESTRICTED_VARS), (IDP_POLY_GCD) which results in the following new constraint:

    (30)    (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧[(4)bni_44] ≥ 0∧[(2)bni_44] ≥ 0∧[bni_44] ≥ 0∧0 ≥ 0∧[bni_44] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_44 + (-1)Bound*bni_44] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_45] ≥ 0∧[1] ≥ 0)







For Pair JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) the following chains were created:
  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) which results in the following constraint:

    (31)    (i477[3]=i477[4]o3274[3]=java.lang.Object(IntList(o3274[4], i1311[4]))∧i3[3]=i3[4]a4210data[3]=a4210data[4]i615[3]=i615[4]o3142[3]=o3142[4]i1284[3]=i1238[4]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (31) using rules (III), (IV) which results in the following new constraint:

    (32)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], java.lang.Object(IntList(o3274[4], i1311[4])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (32) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (33)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (33) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (34)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (34) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (35)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (35) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (36)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_47] ≥ 0)



  • We consider the chain JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]), LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) which results in the following constraint:

    (37)    (o3274[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i3[3]=i3[14]a4210data[3]=a4210data[14]i1284[3]=i1238[14]o3142[3]=java.lang.Object(IntList(o3280[14], i1314[14]))∧i477[3]=i477[14]i615[3]=i615[14]JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (37) using rules (III), (IV) which results in the following new constraint:

    (38)    (JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥NonInfC∧JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))≥LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], java.lang.Object(IntList(o3280[14], i1314[14])), i1284[3], java.lang.Object(IntList(o3280[14], i1314[14])))∧(UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥))



    We simplified constraint (38) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (39)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (39) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (40)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (40) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (41)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧[(-1)bso_47] ≥ 0)



    We simplified constraint (41) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (42)    ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_47] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
    • (0 ≥ 0 ⇒ (UIncreasing(JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])), ≥)∧0 ≥ 0∧[(4)bni_38] ≥ 0∧[bni_38] ≥ 0∧0 ≥ 0∧[bni_38] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(11)bni_38 + (-1)Bound*bni_38] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[7 + (-1)bso_39] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))), ≥)∧0 ≥ 0∧[(6)bni_40] ≥ 0∧[(2)bni_40] ≥ 0∧0 ≥ 0∧[bni_40] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(12)bni_40 + (-1)Bound*bni_40] ≥ 0∧0 ≥ 0∧[1] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_41] ≥ 0∧[1] ≥ 0)

  • COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(4)bni_42] ≥ 0∧[(2)bni_42] ≥ 0∧[bni_42] ≥ 0∧0 ≥ 0∧[bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(15)bni_42 + (-1)Bound*bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[7 + (-1)bso_43] ≥ 0∧[1] ≥ 0)
    • (0 ≥ 0 ⇒ (UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])), ≥)∧0 ≥ 0∧0 ≥ 0∧[(6)bni_42] ≥ 0∧[(2)bni_42] ≥ 0∧0 ≥ 0∧[bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(19)bni_42 + (-1)Bound*bni_42] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[7 + (-1)bso_43] ≥ 0∧[1] ≥ 0)

  • LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))
    • (0 ≥ 0 ⇒ (UIncreasing(COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))), ≥)∧0 ≥ 0∧[(4)bni_44] ≥ 0∧[(2)bni_44] ≥ 0∧[bni_44] ≥ 0∧0 ≥ 0∧[bni_44] ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(8)bni_44 + (-1)Bound*bni_44] ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[1 + (-1)bso_45] ≥ 0∧[1] ≥ 0)

  • JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_47] ≥ 0)
    • ((UIncreasing(LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])), ≥)∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧0 ≥ 0∧[(-1)bso_47] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers with natural coefficients for all symbols [NONINF][POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(COND_LOAD36073(x1, x2, x3, x4, x5, x6)) = [3] + [2]x6 + x5 + x3   
POL(java.lang.Object(x1)) = [2]x1   
POL(ARRAY(x1, x2)) = 0   
POL(IntList(x1, x2)) = [2] + x1   
POL(JMP3960'(x1, x2, x3, x4, x5, x6)) = [2]x6 + [2]x5 + x4 + x2   
POL(+(x1, x2)) = 0   
POL(-1) = 0   
POL(LOAD3607(x1, x2, x3, x4, x5, x6)) = [2]x6 + [2]x5 + x4 + x2   
POL(>(x1, x2)) = 0   
POL(1) = 0   
POL(COND_LOAD3607(x1, x2, x3, x4, x5, x6, x7)) = [3] + x7 + [2]x6 + x5 + x3   

The following pairs are in P>:

COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))

The following pairs are in Pbound:

COND_LOAD36073(TRUE, java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], i1238[15], java.lang.Object(IntList(o3280[15], i1314[15]))) → JMP3960'(java.lang.Object(ARRAY(i3[15], a4210data[15])), i615[15], i477[15], java.lang.Object(IntList(o3280[15], i1314[15])), +(i1238[15], -1), o3280[15])
LOAD3607(java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], java.lang.Object(IntList(o3280[14], i1314[14])), i1238[14], java.lang.Object(IntList(o3280[14], i1314[14]))) → COND_LOAD36073(>(i1238[14], 1), java.lang.Object(ARRAY(i3[14], a4210data[14])), i615[14], i477[14], i1238[14], java.lang.Object(IntList(o3280[14], i1314[14])))
COND_LOAD3607(TRUE, java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], i1238[5], java.lang.Object(IntList(o3274[5], i1311[5]))) → LOAD3607(java.lang.Object(ARRAY(i3[5], a4210data[5])), i615[5], i477[5], o3142[5], +(i1238[5], -1), o3274[5])
LOAD3607(java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4]))) → COND_LOAD3607(>(i1238[4], 1), java.lang.Object(ARRAY(i3[4], a4210data[4])), i615[4], i477[4], o3142[4], i1238[4], java.lang.Object(IntList(o3274[4], i1311[4])))

The following pairs are in P:

JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])

There are no usable rules.

(27) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


R is empty.

The integer pair graph contains the following rules and edges:
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])


The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(28) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(29) TRUE

(30) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


R is empty.

The integer pair graph contains the following rules and edges:
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))


(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))


(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))


(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))


(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))


(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))


(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))


(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(31) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 10 less nodes.

(32) TRUE

(33) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:
none


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2305(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0]) → LOAD2305ARR1(java.lang.Object(ARRAY(i3[0], a2436data[0])), i118[0], java.lang.Object(IntList(o1856[0], i480[0])), i477[0], java.lang.Object(java.lang.String(i771[0], i770[0], i772[0], a3255[0])))
(3): JMP3960'(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3]) → LOAD3607(java.lang.Object(ARRAY(i3[3], a4210data[3])), i615[3], i477[3], o3142[3], i1284[3], o3274[3])
(7): COND_LOAD36071(TRUE, java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], i1238[7], o3141[7]) → LOAD3637(java.lang.Object(ARRAY(i3[7], a4210data[7])), i615[7], i477[7], o3142[7], o3141[7])
(9): COND_LOAD36072(TRUE, java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], i1238[9]) → LOAD3637(java.lang.Object(ARRAY(i3[9], a4210data[9])), i615[9], i477[9], o3142[9], NULL)
(10): STORE3886(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i477[10], i1289[10]) → LOAD2305(java.lang.Object(ARRAY(i3[10], a4210data[10])), i615[10], o3142[10], i1289[10])
(11): RETURN3818(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], i477[11], o3142[11], i1289[11]) → LOAD2305(java.lang.Object(ARRAY(i3[11], a4210data[11])), i615[11], o3142[11], i1289[11])
(12): LOAD3637(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], i477[12], o3142[12], java.lang.Object(IntList(o3234[12], i1289[12]))) → LOAD2305(java.lang.Object(ARRAY(i3[12], a4210data[12])), i615[12], o3142[12], i1289[12])
(13): LOAD3607(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], i477[13], o3142[13], 0, java.lang.Object(IntList(o3234[13], i1289[13]))) → LOAD2305(java.lang.Object(ARRAY(i3[13], a4210data[13])), i615[13], o3142[13], i1289[13])
(16): LOAD3637(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], i477[16], o3142[16], NULL) → STORE3886(java.lang.Object(ARRAY(i3[16], a4210data[16])), i615[16], o3142[16], i477[16], 0)
(17): LOAD3607(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], i477[17], o3142[17], 0, NULL) → STORE3886(java.lang.Object(ARRAY(i3[17], a4210data[17])), i615[17], o3142[17], i477[17], 0)
(18): LOAD3637(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), java.lang.Object(IntList(o3239[18], i1291[18]))) → RETURN3818(java.lang.Object(ARRAY(i3[18], a4210data[18])), i615[18], i477[18], java.lang.Object(IntList(o3239[18], i1291[18])), i1291[18])
(19): LOAD3607(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), 0, java.lang.Object(IntList(o3239[19], i1291[19]))) → RETURN3818(java.lang.Object(ARRAY(i3[19], a4210data[19])), i615[19], i477[19], java.lang.Object(IntList(o3239[19], i1291[19])), i1291[19])

(10) -> (0), if ((i1289[10]* i477[0])∧(i615[10]* i118[0])∧(o3142[10]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[10]* i3[0])∧(a4210data[10]* a2436data[0])))


(11) -> (0), if ((i615[11]* i118[0])∧(i1289[11]* i477[0])∧(o3142[11]* java.lang.Object(IntList(o1856[0], i480[0])))∧((i3[11]* i3[0])∧(a4210data[11]* a2436data[0])))


(12) -> (0), if ((o3142[12]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i1289[12]* i477[0])∧(i615[12]* i118[0])∧((i3[12]* i3[0])∧(a4210data[12]* a2436data[0])))


(13) -> (0), if ((i1289[13]* i477[0])∧(o3142[13]* java.lang.Object(IntList(o1856[0], i480[0])))∧(i615[13]* i118[0])∧((i3[13]* i3[0])∧(a4210data[13]* a2436data[0])))


(16) -> (10), if ((i615[16]* i615[10])∧(o3142[16]* o3142[10])∧((i3[16]* i3[10])∧(a4210data[16]* a4210data[10]))∧(0* i1289[10])∧(i477[16]* i477[10]))


(17) -> (10), if ((o3142[17]* o3142[10])∧(i477[17]* i477[10])∧((i3[17]* i3[10])∧(a4210data[17]* a4210data[10]))∧(0* i1289[10])∧(i615[17]* i615[10]))


(18) -> (11), if ((java.lang.Object(IntList(o3239[18], i1291[18])) →* o3142[11])∧(i615[18]* i615[11])∧(i477[18]* i477[11])∧(i1291[18]* i1289[11])∧((i3[18]* i3[11])∧(a4210data[18]* a4210data[11])))


(19) -> (11), if (((i3[19]* i3[11])∧(a4210data[19]* a4210data[11]))∧(java.lang.Object(IntList(o3239[19], i1291[19])) →* o3142[11])∧(i1291[19]* i1289[11])∧(i477[19]* i477[11])∧(i615[19]* i615[11]))


(7) -> (12), if ((i615[7]* i615[12])∧(o3141[7]* java.lang.Object(IntList(o3234[12], i1289[12])))∧(i477[7]* i477[12])∧((i3[7]* i3[12])∧(a4210data[7]* a4210data[12]))∧(o3142[7]* o3142[12]))


(9) -> (12), if ((i615[9]* i615[12])∧((i3[9]* i3[12])∧(a4210data[9]* a4210data[12]))∧false∧(o3142[9]* o3142[12])∧(i477[9]* i477[12]))


(3) -> (13), if ((i477[3]* i477[13])∧((i3[3]* i3[13])∧(a4210data[3]* a4210data[13]))∧(o3274[3]* java.lang.Object(IntList(o3234[13], i1289[13])))∧(i1284[3]* 0)∧(i615[3]* i615[13])∧(o3142[3]* o3142[13]))


(7) -> (16), if ((o3141[7]* NULL)∧(i615[7]* i615[16])∧(i477[7]* i477[16])∧((i3[7]* i3[16])∧(a4210data[7]* a4210data[16]))∧(o3142[7]* o3142[16]))


(9) -> (16), if ((i477[9]* i477[16])∧((i3[9]* i3[16])∧(a4210data[9]* a4210data[16]))∧(i615[9]* i615[16])∧(o3142[9]* o3142[16]))


(3) -> (17), if ((i477[3]* i477[17])∧(o3142[3]* o3142[17])∧((i3[3]* i3[17])∧(a4210data[3]* a4210data[17]))∧(o3274[3]* NULL)∧(i615[3]* i615[17])∧(i1284[3]* 0))


(7) -> (18), if (((i3[7]* i3[18])∧(a4210data[7]* a4210data[18]))∧(o3142[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i477[7]* i477[18])∧(o3141[7]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[7]* i615[18]))


(9) -> (18), if (false∧(i477[9]* i477[18])∧((i3[9]* i3[18])∧(a4210data[9]* a4210data[18]))∧(o3142[9]* java.lang.Object(IntList(o3239[18], i1291[18])))∧(i615[9]* i615[18]))


(3) -> (19), if ((o3274[3]* java.lang.Object(IntList(o3239[19], i1291[19])))∧(i477[3]* i477[19])∧(i615[3]* i615[19])∧(i1284[3]* 0)∧((i3[3]* i3[19])∧(a4210data[3]* a4210data[19]))∧(o3142[3]* java.lang.Object(IntList(o3239[19], i1291[19]))))



The set Q consists of the following terms:
Load2305(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5)
Load2305ARR1(java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
Cond_Load2305ARR1(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, java.lang.Object(IntList(x3, x4)), x5, java.lang.Object(java.lang.String(x6, x7, x8, x9)))
JMP3960(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load3607(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, java.lang.Object(IntList(x6, x7)))
Load3607(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36071(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5, x6)
Cond_Load36072(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Store3886(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Return3818(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, x5)
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Cond_Load36073(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, java.lang.Object(IntList(x5, x6)))
Load3637(java.lang.Object(ARRAY(x0, x1)), x2, x3, x4, NULL)

(34) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 12 less nodes.

(35) TRUE

(36) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load2084(java.lang.Object(IntList(o1832, i473)), java.lang.Object(IntList(o1832, i473)), i460, java.lang.Object(IntList(o1832, i473))) → Cond_Load2084(i460 > 1, java.lang.Object(IntList(o1832, i473)), java.lang.Object(IntList(o1832, i473)), i460, java.lang.Object(IntList(o1832, i473)))
Cond_Load2084(TRUE, java.lang.Object(IntList(o1832, i473)), java.lang.Object(IntList(o1832, i473)), i460, java.lang.Object(IntList(o1832, i473))) → JMP2316(java.lang.Object(IntList(o1832, i473)), java.lang.Object(IntList(o1832, i473)), i460 + -1, o1832)
JMP2316(o1788, o1788, i462, o1828) → Load2084(o1788, o1788, i462, o1828)
Load2084(o1788, o1788, i460, java.lang.Object(IntList(o1828, i472))) → Cond_Load20841(i460 > 1, o1788, o1788, i460, java.lang.Object(IntList(o1828, i472)))
Cond_Load20841(TRUE, o1788, o1788, i460, java.lang.Object(IntList(o1828, i472))) → Load2084(o1788, o1788, i460 + -1, o1828)
The set Q consists of the following terms:
Cond_Load2084(TRUE, java.lang.Object(IntList(x0, x1)), java.lang.Object(IntList(x0, x1)), x2, java.lang.Object(IntList(x0, x1)))
JMP2316(x0, x0, x1, x2)
Load2084(x0, x0, x1, java.lang.Object(IntList(x2, x3)))
Cond_Load20841(TRUE, x0, x0, x1, java.lang.Object(IntList(x2, x3)))

(37) DuplicateArgsRemoverProof (EQUIVALENT transformation)

Some arguments are removed because they only appear as duplicates.
We removed arguments according to the following replacements:

Load2084(x1, x2, x3, x4) → Load2084(x2, x3, x4)
Cond_Load20841(x1, x2, x3, x4, x5) → Cond_Load20841(x1, x3, x4, x5)
JMP2316(x1, x2, x3, x4) → JMP2316(x2, x3, x4)
Cond_Load2084(x1, x2, x3, x4, x5) → Cond_Load2084(x1, x4, x5)

(38) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load2084(java.lang.Object(IntList(o1832, i473)), i460, java.lang.Object(IntList(o1832, i473))) → Cond_Load2084(i460 > 1, i460, java.lang.Object(IntList(o1832, i473)))
Cond_Load2084(TRUE, i460, java.lang.Object(IntList(o1832, i473))) → JMP2316(java.lang.Object(IntList(o1832, i473)), i460 + -1, o1832)
JMP2316(o1788, i462, o1828) → Load2084(o1788, i462, o1828)
Load2084(o1788, i460, java.lang.Object(IntList(o1828, i472))) → Cond_Load20841(i460 > 1, o1788, i460, java.lang.Object(IntList(o1828, i472)))
Cond_Load20841(TRUE, o1788, i460, java.lang.Object(IntList(o1828, i472))) → Load2084(o1788, i460 + -1, o1828)
The set Q consists of the following terms:
Cond_Load2084(TRUE, x0, java.lang.Object(IntList(x1, x2)))
JMP2316(x0, x1, x2)
Load2084(x0, x1, java.lang.Object(IntList(x2, x3)))
Cond_Load20841(TRUE, x0, x1, java.lang.Object(IntList(x2, x3)))

(39) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(40) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


The ITRS R consists of the following rules:
Load2084(java.lang.Object(IntList(o1832, i473)), i460, java.lang.Object(IntList(o1832, i473))) → Cond_Load2084(i460 > 1, i460, java.lang.Object(IntList(o1832, i473)))
Cond_Load2084(TRUE, i460, java.lang.Object(IntList(o1832, i473))) → JMP2316(java.lang.Object(IntList(o1832, i473)), i460 + -1, o1832)
JMP2316(o1788, i462, o1828) → Load2084(o1788, i462, o1828)
Load2084(o1788, i460, java.lang.Object(IntList(o1828, i472))) → Cond_Load20841(i460 > 1, o1788, i460, java.lang.Object(IntList(o1828, i472)))
Cond_Load20841(TRUE, o1788, i460, java.lang.Object(IntList(o1828, i472))) → Load2084(o1788, i460 + -1, o1828)

The integer pair graph contains the following rules and edges:
(0): LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(i460[0] > 1, i460[0], java.lang.Object(IntList(o1832[0], i473[0])))
(1): COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1]))) → JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), i460[1] + -1, o1832[1])
(2): JMP2316'(o1788[2], i462[2], o1828[2]) → LOAD2084(o1788[2], i462[2], o1828[2])
(3): LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) → COND_LOAD20841(i460[3] > 1, o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))
(4): COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4]))) → LOAD2084(o1788[4], i460[4] + -1, o1828[4])

(0) -> (1), if ((i460[0] > 1* TRUE)∧(i460[0]* i460[1])∧(java.lang.Object(IntList(o1832[0], i473[0])) →* java.lang.Object(IntList(o1832[1], i473[1]))))


(1) -> (2), if ((o1832[1]* o1828[2])∧(i460[1] + -1* i462[2])∧(java.lang.Object(IntList(o1832[1], i473[1])) →* o1788[2]))


(2) -> (0), if ((o1788[2]* java.lang.Object(IntList(o1832[0], i473[0])))∧(i462[2]* i460[0])∧(o1828[2]* java.lang.Object(IntList(o1832[0], i473[0]))))


(2) -> (3), if ((o1828[2]* java.lang.Object(IntList(o1828[3], i472[3])))∧(i462[2]* i460[3])∧(o1788[2]* o1788[3]))


(3) -> (4), if ((i460[3] > 1* TRUE)∧(o1788[3]* o1788[4])∧(java.lang.Object(IntList(o1828[3], i472[3])) →* java.lang.Object(IntList(o1828[4], i472[4])))∧(i460[3]* i460[4]))


(4) -> (0), if ((i460[4] + -1* i460[0])∧(o1828[4]* java.lang.Object(IntList(o1832[0], i473[0])))∧(o1788[4]* java.lang.Object(IntList(o1832[0], i473[0]))))


(4) -> (3), if ((i460[4] + -1* i460[3])∧(o1788[4]* o1788[3])∧(o1828[4]* java.lang.Object(IntList(o1828[3], i472[3]))))



The set Q consists of the following terms:
Cond_Load2084(TRUE, x0, java.lang.Object(IntList(x1, x2)))
JMP2316(x0, x1, x2)
Load2084(x0, x1, java.lang.Object(IntList(x2, x3)))
Cond_Load20841(TRUE, x0, x1, java.lang.Object(IntList(x2, x3)))

(41) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(42) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(i460[0] > 1, i460[0], java.lang.Object(IntList(o1832[0], i473[0])))
(1): COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1]))) → JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), i460[1] + -1, o1832[1])
(2): JMP2316'(o1788[2], i462[2], o1828[2]) → LOAD2084(o1788[2], i462[2], o1828[2])
(3): LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) → COND_LOAD20841(i460[3] > 1, o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))
(4): COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4]))) → LOAD2084(o1788[4], i460[4] + -1, o1828[4])

(0) -> (1), if ((i460[0] > 1* TRUE)∧(i460[0]* i460[1])∧(java.lang.Object(IntList(o1832[0], i473[0])) →* java.lang.Object(IntList(o1832[1], i473[1]))))


(1) -> (2), if ((o1832[1]* o1828[2])∧(i460[1] + -1* i462[2])∧(java.lang.Object(IntList(o1832[1], i473[1])) →* o1788[2]))


(2) -> (0), if ((o1788[2]* java.lang.Object(IntList(o1832[0], i473[0])))∧(i462[2]* i460[0])∧(o1828[2]* java.lang.Object(IntList(o1832[0], i473[0]))))


(2) -> (3), if ((o1828[2]* java.lang.Object(IntList(o1828[3], i472[3])))∧(i462[2]* i460[3])∧(o1788[2]* o1788[3]))


(3) -> (4), if ((i460[3] > 1* TRUE)∧(o1788[3]* o1788[4])∧(java.lang.Object(IntList(o1828[3], i472[3])) →* java.lang.Object(IntList(o1828[4], i472[4])))∧(i460[3]* i460[4]))


(4) -> (0), if ((i460[4] + -1* i460[0])∧(o1828[4]* java.lang.Object(IntList(o1832[0], i473[0])))∧(o1788[4]* java.lang.Object(IntList(o1832[0], i473[0]))))


(4) -> (3), if ((i460[4] + -1* i460[3])∧(o1788[4]* o1788[3])∧(o1828[4]* java.lang.Object(IntList(o1828[3], i472[3]))))



The set Q consists of the following terms:
Cond_Load2084(TRUE, x0, java.lang.Object(IntList(x1, x2)))
JMP2316(x0, x1, x2)
Load2084(x0, x1, java.lang.Object(IntList(x2, x3)))
Cond_Load20841(TRUE, x0, x1, java.lang.Object(IntList(x2, x3)))

(43) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

(44) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(i460[0] > 1, i460[0], java.lang.Object(IntList(o1832[0], i473[0])))
(1): COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1]))) → JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), i460[1] + -1, o1832[1])
(2): JMP2316'(o1788[2], i462[2], o1828[2]) → LOAD2084(o1788[2], i462[2], o1828[2])
(3): LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) → COND_LOAD20841(i460[3] > 1, o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))
(4): COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4]))) → LOAD2084(o1788[4], i460[4] + -1, o1828[4])

(1) -> (2), if ((o1832[1]* o1828[2])∧(i460[1] + -1* i462[2])∧(java.lang.Object(IntList(o1832[1], i473[1])) →* o1788[2]))


(2) -> (0), if ((o1788[2]* java.lang.Object(IntList(o1832[0], i473[0])))∧(i462[2]* i460[0])∧(o1828[2]* java.lang.Object(IntList(o1832[0], i473[0]))))


(2) -> (3), if ((o1828[2]* java.lang.Object(IntList(o1828[3], i472[3])))∧(i462[2]* i460[3])∧(o1788[2]* o1788[3]))


(4) -> (0), if ((i460[4] + -1* i460[0])∧(o1828[4]* java.lang.Object(IntList(o1832[0], i473[0])))∧(o1788[4]* java.lang.Object(IntList(o1832[0], i473[0]))))


(4) -> (3), if ((i460[4] + -1* i460[3])∧(o1788[4]* o1788[3])∧(o1828[4]* java.lang.Object(IntList(o1828[3], i472[3]))))


(0) -> (1), if ((i460[0] > 1* TRUE)∧(i460[0]* i460[1])∧((o1832[0]* o1832[1])∧(i473[0]* i473[1])))


(3) -> (4), if ((i460[3] > 1* TRUE)∧(o1788[3]* o1788[4])∧((o1828[3]* o1828[4])∧(i472[3]* i472[4]))∧(i460[3]* i460[4]))



The set Q consists of the following terms:
Cond_Load2084(TRUE, x0, java.lang.Object(IntList(x1, x2)))
JMP2316(x0, x1, x2)
Load2084(x0, x1, java.lang.Object(IntList(x2, x3)))
Cond_Load20841(TRUE, x0, x1, java.lang.Object(IntList(x2, x3)))

(45) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD2084(java.lang.Object(IntList(o1832, i473)), i460, java.lang.Object(IntList(o1832, i473))) → COND_LOAD2084(>(i460, 1), i460, java.lang.Object(IntList(o1832, i473))) the following chains were created:
  • We consider the chain LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))), COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1]))) → JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1]) which results in the following constraint:

    (1)    (>(i460[0], 1)=TRUEi460[0]=i460[1]o1832[0]=o1832[1]i473[0]=i473[1]LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))≥NonInfC∧LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))≥COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))∧(UIncreasing(COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))), ≥))



    We simplified constraint (1) using rule (IV) which results in the following new constraint:

    (2)    (>(i460[0], 1)=TRUELOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))≥NonInfC∧LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))≥COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))∧(UIncreasing(COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))), ≥))



    We simplified constraint (2) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (3)    (i460[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))), ≥)∧[bni_14 + (-1)Bound*bni_14] + [(2)bni_14]i460[0] ≥ 0∧[(-1)bso_15] ≥ 0)



    We simplified constraint (3) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (4)    (i460[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))), ≥)∧[bni_14 + (-1)Bound*bni_14] + [(2)bni_14]i460[0] ≥ 0∧[(-1)bso_15] ≥ 0)



    We simplified constraint (4) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (5)    (i460[0] + [-2] ≥ 0 ⇒ (UIncreasing(COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))), ≥)∧[bni_14 + (-1)Bound*bni_14] + [(2)bni_14]i460[0] ≥ 0∧[(-1)bso_15] ≥ 0)



    We simplified constraint (5) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (6)    (i460[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))), ≥)∧[(5)bni_14 + (-1)Bound*bni_14] + [(2)bni_14]i460[0] ≥ 0∧[(-1)bso_15] ≥ 0)







For Pair COND_LOAD2084(TRUE, i460, java.lang.Object(IntList(o1832, i473))) → JMP2316'(java.lang.Object(IntList(o1832, i473)), +(i460, -1), o1832) the following chains were created:
  • We consider the chain COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1]))) → JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1]) which results in the following constraint:

    (7)    (COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1])))≥NonInfC∧COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1])))≥JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])∧(UIncreasing(JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    ((UIncreasing(JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])), ≥)∧[1 + (-1)bso_17] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    ((UIncreasing(JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])), ≥)∧[1 + (-1)bso_17] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    ((UIncreasing(JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])), ≥)∧[1 + (-1)bso_17] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    ((UIncreasing(JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])), ≥)∧0 = 0∧[1 + (-1)bso_17] ≥ 0)







For Pair JMP2316'(o1788, i462, o1828) → LOAD2084(o1788, i462, o1828) the following chains were created:
  • We consider the chain JMP2316'(o1788[2], i462[2], o1828[2]) → LOAD2084(o1788[2], i462[2], o1828[2]), LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) which results in the following constraint:

    (12)    (o1788[2]=java.lang.Object(IntList(o1832[0], i473[0]))∧i462[2]=i460[0]o1828[2]=java.lang.Object(IntList(o1832[0], i473[0])) ⇒ JMP2316'(o1788[2], i462[2], o1828[2])≥NonInfC∧JMP2316'(o1788[2], i462[2], o1828[2])≥LOAD2084(o1788[2], i462[2], o1828[2])∧(UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥))



    We simplified constraint (12) using rules (III), (IV) which results in the following new constraint:

    (13)    (JMP2316'(java.lang.Object(IntList(o1832[0], i473[0])), i462[2], java.lang.Object(IntList(o1832[0], i473[0])))≥NonInfC∧JMP2316'(java.lang.Object(IntList(o1832[0], i473[0])), i462[2], java.lang.Object(IntList(o1832[0], i473[0])))≥LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i462[2], java.lang.Object(IntList(o1832[0], i473[0])))∧(UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥))



    We simplified constraint (13) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (14)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (14) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (15)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (15) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (16)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (16) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (17)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧0 = 0∧[1 + (-1)bso_19] ≥ 0)



  • We consider the chain JMP2316'(o1788[2], i462[2], o1828[2]) → LOAD2084(o1788[2], i462[2], o1828[2]), LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) → COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) which results in the following constraint:

    (18)    (o1828[2]=java.lang.Object(IntList(o1828[3], i472[3]))∧i462[2]=i460[3]o1788[2]=o1788[3]JMP2316'(o1788[2], i462[2], o1828[2])≥NonInfC∧JMP2316'(o1788[2], i462[2], o1828[2])≥LOAD2084(o1788[2], i462[2], o1828[2])∧(UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥))



    We simplified constraint (18) using rules (III), (IV) which results in the following new constraint:

    (19)    (JMP2316'(o1788[2], i462[2], java.lang.Object(IntList(o1828[3], i472[3])))≥NonInfC∧JMP2316'(o1788[2], i462[2], java.lang.Object(IntList(o1828[3], i472[3])))≥LOAD2084(o1788[2], i462[2], java.lang.Object(IntList(o1828[3], i472[3])))∧(UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥))



    We simplified constraint (19) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (20)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (20) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (21)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (21) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (22)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧[1 + (-1)bso_19] ≥ 0)



    We simplified constraint (22) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (23)    ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧0 = 0∧[1 + (-1)bso_19] ≥ 0)







For Pair LOAD2084(o1788, i460, java.lang.Object(IntList(o1828, i472))) → COND_LOAD20841(>(i460, 1), o1788, i460, java.lang.Object(IntList(o1828, i472))) the following chains were created:
  • We consider the chain LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) → COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))), COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4]))) → LOAD2084(o1788[4], +(i460[4], -1), o1828[4]) which results in the following constraint:

    (24)    (>(i460[3], 1)=TRUEo1788[3]=o1788[4]o1828[3]=o1828[4]i472[3]=i472[4]i460[3]=i460[4]LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))≥NonInfC∧LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))≥COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))∧(UIncreasing(COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))), ≥))



    We simplified constraint (24) using rule (IV) which results in the following new constraint:

    (25)    (>(i460[3], 1)=TRUELOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))≥NonInfC∧LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))≥COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))∧(UIncreasing(COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))), ≥))



    We simplified constraint (25) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (26)    (i460[3] + [-2] ≥ 0 ⇒ (UIncreasing(COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i460[3] ≥ 0∧[1 + (-1)bso_21] ≥ 0)



    We simplified constraint (26) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (27)    (i460[3] + [-2] ≥ 0 ⇒ (UIncreasing(COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i460[3] ≥ 0∧[1 + (-1)bso_21] ≥ 0)



    We simplified constraint (27) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (28)    (i460[3] + [-2] ≥ 0 ⇒ (UIncreasing(COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))), ≥)∧[bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i460[3] ≥ 0∧[1 + (-1)bso_21] ≥ 0)



    We simplified constraint (28) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (29)    (i460[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))), ≥)∧[(5)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i460[3] ≥ 0∧[1 + (-1)bso_21] ≥ 0)







For Pair COND_LOAD20841(TRUE, o1788, i460, java.lang.Object(IntList(o1828, i472))) → LOAD2084(o1788, +(i460, -1), o1828) the following chains were created:
  • We consider the chain COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4]))) → LOAD2084(o1788[4], +(i460[4], -1), o1828[4]) which results in the following constraint:

    (30)    (COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4])))≥NonInfC∧COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4])))≥LOAD2084(o1788[4], +(i460[4], -1), o1828[4])∧(UIncreasing(LOAD2084(o1788[4], +(i460[4], -1), o1828[4])), ≥))



    We simplified constraint (30) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (31)    ((UIncreasing(LOAD2084(o1788[4], +(i460[4], -1), o1828[4])), ≥)∧[1 + (-1)bso_23] ≥ 0)



    We simplified constraint (31) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (32)    ((UIncreasing(LOAD2084(o1788[4], +(i460[4], -1), o1828[4])), ≥)∧[1 + (-1)bso_23] ≥ 0)



    We simplified constraint (32) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (33)    ((UIncreasing(LOAD2084(o1788[4], +(i460[4], -1), o1828[4])), ≥)∧[1 + (-1)bso_23] ≥ 0)



    We simplified constraint (33) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (34)    ((UIncreasing(LOAD2084(o1788[4], +(i460[4], -1), o1828[4])), ≥)∧0 = 0∧[1 + (-1)bso_23] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD2084(java.lang.Object(IntList(o1832, i473)), i460, java.lang.Object(IntList(o1832, i473))) → COND_LOAD2084(>(i460, 1), i460, java.lang.Object(IntList(o1832, i473)))
    • (i460[0] ≥ 0 ⇒ (UIncreasing(COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))), ≥)∧[(5)bni_14 + (-1)Bound*bni_14] + [(2)bni_14]i460[0] ≥ 0∧[(-1)bso_15] ≥ 0)

  • COND_LOAD2084(TRUE, i460, java.lang.Object(IntList(o1832, i473))) → JMP2316'(java.lang.Object(IntList(o1832, i473)), +(i460, -1), o1832)
    • ((UIncreasing(JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])), ≥)∧0 = 0∧[1 + (-1)bso_17] ≥ 0)

  • JMP2316'(o1788, i462, o1828) → LOAD2084(o1788, i462, o1828)
    • ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧0 = 0∧[1 + (-1)bso_19] ≥ 0)
    • ((UIncreasing(LOAD2084(o1788[2], i462[2], o1828[2])), ≥)∧0 = 0∧[1 + (-1)bso_19] ≥ 0)

  • LOAD2084(o1788, i460, java.lang.Object(IntList(o1828, i472))) → COND_LOAD20841(>(i460, 1), o1788, i460, java.lang.Object(IntList(o1828, i472)))
    • (i460[3] ≥ 0 ⇒ (UIncreasing(COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))), ≥)∧[(5)bni_20 + (-1)Bound*bni_20] + [(2)bni_20]i460[3] ≥ 0∧[1 + (-1)bso_21] ≥ 0)

  • COND_LOAD20841(TRUE, o1788, i460, java.lang.Object(IntList(o1828, i472))) → LOAD2084(o1788, +(i460, -1), o1828)
    • ((UIncreasing(LOAD2084(o1788[4], +(i460[4], -1), o1828[4])), ≥)∧0 = 0∧[1 + (-1)bso_23] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD2084(x1, x2, x3)) = [1] + [2]x2   
POL(java.lang.Object(x1)) = [-1]   
POL(IntList(x1, x2)) = [-1]   
POL(COND_LOAD2084(x1, x2, x3)) = [1] + [2]x2   
POL(>(x1, x2)) = [-1]   
POL(1) = [1]   
POL(JMP2316'(x1, x2, x3)) = [2] + [2]x2   
POL(+(x1, x2)) = x1 + x2   
POL(-1) = [-1]   
POL(COND_LOAD20841(x1, x2, x3, x4)) = [2]x3   

The following pairs are in P>:

COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1]))) → JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), +(i460[1], -1), o1832[1])
JMP2316'(o1788[2], i462[2], o1828[2]) → LOAD2084(o1788[2], i462[2], o1828[2])
LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) → COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))
COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4]))) → LOAD2084(o1788[4], +(i460[4], -1), o1828[4])

The following pairs are in Pbound:

LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))
LOAD2084(o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3]))) → COND_LOAD20841(>(i460[3], 1), o1788[3], i460[3], java.lang.Object(IntList(o1828[3], i472[3])))

The following pairs are in P:

LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(>(i460[0], 1), i460[0], java.lang.Object(IntList(o1832[0], i473[0])))

There are no usable rules.

(46) Complex Obligation (AND)

(47) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD2084(java.lang.Object(IntList(o1832[0], i473[0])), i460[0], java.lang.Object(IntList(o1832[0], i473[0]))) → COND_LOAD2084(i460[0] > 1, i460[0], java.lang.Object(IntList(o1832[0], i473[0])))


The set Q consists of the following terms:
Cond_Load2084(TRUE, x0, java.lang.Object(IntList(x1, x2)))
JMP2316(x0, x1, x2)
Load2084(x0, x1, java.lang.Object(IntList(x2, x3)))
Cond_Load20841(TRUE, x0, x1, java.lang.Object(IntList(x2, x3)))

(48) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 1 less node.

(49) TRUE

(50) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(1): COND_LOAD2084(TRUE, i460[1], java.lang.Object(IntList(o1832[1], i473[1]))) → JMP2316'(java.lang.Object(IntList(o1832[1], i473[1])), i460[1] + -1, o1832[1])
(2): JMP2316'(o1788[2], i462[2], o1828[2]) → LOAD2084(o1788[2], i462[2], o1828[2])
(4): COND_LOAD20841(TRUE, o1788[4], i460[4], java.lang.Object(IntList(o1828[4], i472[4]))) → LOAD2084(o1788[4], i460[4] + -1, o1828[4])

(1) -> (2), if ((o1832[1]* o1828[2])∧(i460[1] + -1* i462[2])∧(java.lang.Object(IntList(o1832[1], i473[1])) →* o1788[2]))



The set Q consists of the following terms:
Cond_Load2084(TRUE, x0, java.lang.Object(IntList(x1, x2)))
JMP2316(x0, x1, x2)
Load2084(x0, x1, java.lang.Object(IntList(x2, x3)))
Cond_Load20841(TRUE, x0, x1, java.lang.Object(IntList(x2, x3)))

(51) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 3 less nodes.

(52) TRUE

(53) Obligation:

ITRS problem:

The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean

The TRS R consists of the following rules:
Load1199(java.lang.Object(ARRAY(i3, a1225data)), i102, i104) → Load1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594)))
Load1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → Cond_Load1199ARR2(i102 > 0 && i102 < i3 && i104 > 0 && i102 + 1 > 0, java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → Load1199(java.lang.Object(ARRAY(i3, a1225data)), i102 + 1, i104 + -1)
The set Q consists of the following terms:
Load1199(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load1199ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

(54) ITRStoIDPProof (EQUIVALENT transformation)

Added dependency pairs

(55) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


The ITRS R consists of the following rules:
Load1199(java.lang.Object(ARRAY(i3, a1225data)), i102, i104) → Load1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594)))
Load1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → Cond_Load1199ARR2(i102 > 0 && i102 < i3 && i104 > 0 && i102 + 1 > 0, java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → Load1199(java.lang.Object(ARRAY(i3, a1225data)), i102 + 1, i104 + -1)

The integer pair graph contains the following rules and edges:
(0): LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0]) → LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))
(1): LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))) → COND_LOAD1199ARR2(i102[1] > 0 && i102[1] < i3[1] && i104[1] > 0 && i102[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))
(2): COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2]))) → LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2] + 1, i104[2] + -1)

(0) -> (1), if ((i102[0]* i102[1])∧(i104[0]* i104[1])∧(java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])) →* java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))∧(java.lang.Object(ARRAY(i3[0], a1225data[0])) →* java.lang.Object(ARRAY(i3[1], a1225data[1]))))


(1) -> (2), if ((java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])) →* java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2])))∧(i104[1]* i104[2])∧(i102[1] > 0 && i102[1] < i3[1] && i104[1] > 0 && i102[1] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i3[1], a1225data[1])) →* java.lang.Object(ARRAY(i3[2], a1225data[2])))∧(i102[1]* i102[2]))


(2) -> (0), if ((i102[2] + 1* i102[0])∧(i104[2] + -1* i104[0])∧(java.lang.Object(ARRAY(i3[2], a1225data[2])) →* java.lang.Object(ARRAY(i3[0], a1225data[0]))))



The set Q consists of the following terms:
Load1199(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load1199ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

(56) UsableRulesProof (EQUIVALENT transformation)

As all Q-normal forms are R-normal forms we are in the innermost case. Hence, by the usable rules processor [LPAR04] we can delete all non-usable rules [FROCOS05] from R.

(57) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0]) → LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))
(1): LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))) → COND_LOAD1199ARR2(i102[1] > 0 && i102[1] < i3[1] && i104[1] > 0 && i102[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))
(2): COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2]))) → LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2] + 1, i104[2] + -1)

(0) -> (1), if ((i102[0]* i102[1])∧(i104[0]* i104[1])∧(java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])) →* java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))∧(java.lang.Object(ARRAY(i3[0], a1225data[0])) →* java.lang.Object(ARRAY(i3[1], a1225data[1]))))


(1) -> (2), if ((java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])) →* java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2])))∧(i104[1]* i104[2])∧(i102[1] > 0 && i102[1] < i3[1] && i104[1] > 0 && i102[1] + 1 > 0* TRUE)∧(java.lang.Object(ARRAY(i3[1], a1225data[1])) →* java.lang.Object(ARRAY(i3[2], a1225data[2])))∧(i102[1]* i102[2]))


(2) -> (0), if ((i102[2] + 1* i102[0])∧(i104[2] + -1* i104[0])∧(java.lang.Object(ARRAY(i3[2], a1225data[2])) →* java.lang.Object(ARRAY(i3[0], a1225data[0]))))



The set Q consists of the following terms:
Load1199(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load1199ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

(58) ItpfGraphProof (EQUIVALENT transformation)

Applied rule ItpfICap [ICap]

(59) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0]) → LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))
(1): LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))) → COND_LOAD1199ARR2(i102[1] > 0 && i102[1] < i3[1] && i104[1] > 0 && i102[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))
(2): COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2]))) → LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2] + 1, i104[2] + -1)

(0) -> (1), if ((i102[0]* i102[1])∧(i104[0]* i104[1])∧((i170[0]* i170[1])∧(i169[0]* i169[1])∧(i171[0]* i171[1])∧(a1594[0]* a1594[1]))∧((i3[0]* i3[1])∧(a1225data[0]* a1225data[1])))


(1) -> (2), if (((i170[1]* i170[2])∧(i169[1]* i169[2])∧(i171[1]* i171[2])∧(a1594[1]* a1594[2]))∧(i104[1]* i104[2])∧(i102[1] > 0 && i102[1] < i3[1] && i104[1] > 0 && i102[1] + 1 > 0* TRUE)∧((i3[1]* i3[2])∧(a1225data[1]* a1225data[2]))∧(i102[1]* i102[2]))


(2) -> (0), if ((i102[2] + 1* i102[0])∧(i104[2] + -1* i104[0])∧((i3[2]* i3[0])∧(a1225data[2]* a1225data[0])))



The set Q consists of the following terms:
Load1199(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load1199ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

(60) IDPNonInfProof (SOUND transformation)

The constraints were generated the following way:
The DP Problem is simplified using the Induction Calculus [NONINF] with the following steps:
Note that final constraints are written in bold face.


For Pair LOAD1199(java.lang.Object(ARRAY(i3, a1225data)), i102, i104) → LOAD1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) the following chains were created:
  • We consider the chain LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0]) → LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0]))) which results in the following constraint:

    (1)    (LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0])≥NonInfC∧LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0])≥LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))∧(UIncreasing(LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))), ≥))



    We simplified constraint (1) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (2)    ((UIncreasing(LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))), ≥)∧[(-1)bso_17] ≥ 0)



    We simplified constraint (2) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (3)    ((UIncreasing(LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))), ≥)∧[(-1)bso_17] ≥ 0)



    We simplified constraint (3) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (4)    ((UIncreasing(LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))), ≥)∧[(-1)bso_17] ≥ 0)



    We simplified constraint (4) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (5)    ((UIncreasing(LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_17] ≥ 0)







For Pair LOAD1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → COND_LOAD1199ARR2(&&(&&(&&(>(i102, 0), <(i102, i3)), >(i104, 0)), >(+(i102, 1), 0)), java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) the following chains were created:
  • We consider the chain LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))) → COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))), COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2]))) → LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1)) which results in the following constraint:

    (6)    (i170[1]=i170[2]i169[1]=i169[2]i171[1]=i171[2]a1594[1]=a1594[2]i104[1]=i104[2]&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0))=TRUEi3[1]=i3[2]a1225data[1]=a1225data[2]i102[1]=i102[2]LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))≥NonInfC∧LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))≥COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))∧(UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥))



    We simplified constraint (6) using rules (IV), (IDP_BOOLEAN) which results in the following new constraint:

    (7)    (>(+(i102[1], 1), 0)=TRUE>(i104[1], 0)=TRUE>(i102[1], 0)=TRUE<(i102[1], i3[1])=TRUELOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))≥NonInfC∧LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))≥COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))∧(UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥))



    We simplified constraint (7) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (8)    (i102[1] ≥ 0∧i104[1] + [-1] ≥ 0∧i102[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i102[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [(-1)bni_18]i102[1] + [bni_18]i3[1] ≥ 0∧[(-1)bso_19] ≥ 0)



    We simplified constraint (8) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (9)    (i102[1] ≥ 0∧i104[1] + [-1] ≥ 0∧i102[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i102[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [(-1)bni_18]i102[1] + [bni_18]i3[1] ≥ 0∧[(-1)bso_19] ≥ 0)



    We simplified constraint (9) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (10)    (i102[1] ≥ 0∧i104[1] + [-1] ≥ 0∧i102[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i102[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [(-1)bni_18]i102[1] + [bni_18]i3[1] ≥ 0∧[(-1)bso_19] ≥ 0)



    We simplified constraint (10) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (11)    (i102[1] ≥ 0∧i104[1] + [-1] ≥ 0∧i102[1] + [-1] ≥ 0∧i3[1] + [-1] + [-1]i102[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧0 = 0∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [(-1)bni_18]i102[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)



    We simplified constraint (11) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (12)    ([1] + i102[1] ≥ 0∧i104[1] + [-1] ≥ 0∧i102[1] ≥ 0∧i3[1] + [-2] + [-1]i102[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧0 = 0∧[bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [(-1)bni_18]i102[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)



    We simplified constraint (12) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (13)    ([1] + i102[1] ≥ 0∧i104[1] ≥ 0∧i102[1] ≥ 0∧i3[1] + [-2] + [-1]i102[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧0 = 0∧[(2)bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [(-1)bni_18]i102[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)



    We simplified constraint (13) using rule (IDP_SMT_SPLIT) which results in the following new constraint:

    (14)    ([1] + i102[1] ≥ 0∧i104[1] ≥ 0∧i102[1] ≥ 0∧i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧0 = 0∧[(4)bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)







For Pair COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → LOAD1199(java.lang.Object(ARRAY(i3, a1225data)), +(i102, 1), +(i104, -1)) the following chains were created:
  • We consider the chain COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2]))) → LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1)) which results in the following constraint:

    (15)    (COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2])))≥NonInfC∧COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2])))≥LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))∧(UIncreasing(LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))), ≥))



    We simplified constraint (15) using rule (POLY_CONSTRAINTS) which results in the following new constraint:

    (16)    ((UIncreasing(LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)



    We simplified constraint (16) using rule (IDP_POLY_SIMPLIFY) which results in the following new constraint:

    (17)    ((UIncreasing(LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)



    We simplified constraint (17) using rule (POLY_REMOVE_MIN_MAX) which results in the following new constraint:

    (18)    ((UIncreasing(LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))), ≥)∧[2 + (-1)bso_21] ≥ 0)



    We simplified constraint (18) using rule (IDP_UNRESTRICTED_VARS) which results in the following new constraint:

    (19)    ((UIncreasing(LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_21] ≥ 0)







To summarize, we get the following constraints P for the following pairs.
  • LOAD1199(java.lang.Object(ARRAY(i3, a1225data)), i102, i104) → LOAD1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594)))
    • ((UIncreasing(LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[(-1)bso_17] ≥ 0)

  • LOAD1199ARR2(java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → COND_LOAD1199ARR2(&&(&&(&&(>(i102, 0), <(i102, i3)), >(i104, 0)), >(+(i102, 1), 0)), java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594)))
    • ([1] + i102[1] ≥ 0∧i104[1] ≥ 0∧i102[1] ≥ 0∧i3[1] ≥ 0 ⇒ (UIncreasing(COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))), ≥)∧0 = 0∧[(4)bni_18 + (-1)Bound*bni_18] + [bni_18]i104[1] + [bni_18]i3[1] ≥ 0∧0 = 0∧[(-1)bso_19] ≥ 0)

  • COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3, a1225data)), i102, i104, java.lang.Object(java.lang.String(i170, i169, i171, a1594))) → LOAD1199(java.lang.Object(ARRAY(i3, a1225data)), +(i102, 1), +(i104, -1))
    • ((UIncreasing(LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))), ≥)∧0 = 0∧0 = 0∧0 = 0∧0 = 0∧[2 + (-1)bso_21] ≥ 0)




The constraints for P> respective Pbound are constructed from P where we just replace every occurence of "t ≥ s" in P by "t > s" respective "t ≥ c". Here c stands for the fresh constant used for Pbound.
Using the following integer polynomial ordering the resulting constraints can be solved
Polynomial interpretation over integers[POLO]:

POL(TRUE) = 0   
POL(FALSE) = 0   
POL(LOAD1199(x1, x2, x3)) = [1] + x3 + [-1]x2 + [-1]x1   
POL(java.lang.Object(x1)) = x1   
POL(ARRAY(x1, x2)) = [-1] + [-1]x1   
POL(LOAD1199ARR2(x1, x2, x3, x4)) = [1] + x3 + [-1]x2 + [-1]x1   
POL(java.lang.String(x1, x2, x3, x4)) = [-1]   
POL(COND_LOAD1199ARR2(x1, x2, x3, x4, x5)) = [1] + x4 + [-1]x3 + [-1]x2   
POL(&&(x1, x2)) = [-1]   
POL(>(x1, x2)) = [-1]   
POL(0) = 0   
POL(<(x1, x2)) = [-1]   
POL(+(x1, x2)) = x1 + x2   
POL(1) = [1]   
POL(-1) = [-1]   

The following pairs are in P>:

COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2]))) → LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), +(i102[2], 1), +(i104[2], -1))

The following pairs are in Pbound:

LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))) → COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))

The following pairs are in P:

LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0]) → LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))
LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))) → COND_LOAD1199ARR2(&&(&&(&&(>(i102[1], 0), <(i102[1], i3[1])), >(i104[1], 0)), >(+(i102[1], 1), 0)), java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))

There are no usable rules.

(61) Complex Obligation (AND)

(62) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Boolean, Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0]) → LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))
(1): LOAD1199ARR2(java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1]))) → COND_LOAD1199ARR2(i102[1] > 0 && i102[1] < i3[1] && i104[1] > 0 && i102[1] + 1 > 0, java.lang.Object(ARRAY(i3[1], a1225data[1])), i102[1], i104[1], java.lang.Object(java.lang.String(i170[1], i169[1], i171[1], a1594[1])))

(0) -> (1), if ((i102[0]* i102[1])∧(i104[0]* i104[1])∧((i170[0]* i170[1])∧(i169[0]* i169[1])∧(i171[0]* i171[1])∧(a1594[0]* a1594[1]))∧((i3[0]* i3[1])∧(a1225data[0]* a1225data[1])))



The set Q consists of the following terms:
Load1199(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load1199ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

(63) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(64) TRUE

(65) Obligation:

IDP problem:
The following function symbols are pre-defined:
!=~Neq: (Integer, Integer) -> Boolean
*~Mul: (Integer, Integer) -> Integer
>=~Ge: (Integer, Integer) -> Boolean
-1~UnaryMinus: (Integer) -> Integer
|~Bwor: (Integer, Integer) -> Integer
/~Div: (Integer, Integer) -> Integer
=~Eq: (Integer, Integer) -> Boolean
~Bwxor: (Integer, Integer) -> Integer
||~Lor: (Boolean, Boolean) -> Boolean
!~Lnot: (Boolean) -> Boolean
<~Lt: (Integer, Integer) -> Boolean
-~Sub: (Integer, Integer) -> Integer
<=~Le: (Integer, Integer) -> Boolean
>~Gt: (Integer, Integer) -> Boolean
~~Bwnot: (Integer) -> Integer
%~Mod: (Integer, Integer) -> Integer
&~Bwand: (Integer, Integer) -> Integer
+~Add: (Integer, Integer) -> Integer
&&~Land: (Boolean, Boolean) -> Boolean


The following domains are used:

Integer


R is empty.

The integer pair graph contains the following rules and edges:
(0): LOAD1199(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0]) → LOAD1199ARR2(java.lang.Object(ARRAY(i3[0], a1225data[0])), i102[0], i104[0], java.lang.Object(java.lang.String(i170[0], i169[0], i171[0], a1594[0])))
(2): COND_LOAD1199ARR2(TRUE, java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2], i104[2], java.lang.Object(java.lang.String(i170[2], i169[2], i171[2], a1594[2]))) → LOAD1199(java.lang.Object(ARRAY(i3[2], a1225data[2])), i102[2] + 1, i104[2] + -1)

(2) -> (0), if ((i102[2] + 1* i102[0])∧(i104[2] + -1* i104[0])∧((i3[2]* i3[0])∧(a1225data[2]* a1225data[0])))



The set Q consists of the following terms:
Load1199(java.lang.Object(ARRAY(x0, x1)), x2, x3)
Load1199ARR2(java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))
Cond_Load1199ARR2(TRUE, java.lang.Object(ARRAY(x0, x1)), x2, x3, java.lang.Object(java.lang.String(x4, x5, x6, x7)))

(66) IDependencyGraphProof (EQUIVALENT transformation)

The approximation of the Dependency Graph [LPAR04,FROCOS05,EDGSTAR] contains 0 SCCs with 2 less nodes.

(67) TRUE